在我的应用程序中,我希望客户端JS代理对象与服务器上的相应.NET对象进行通信。我有许多不同类型的对象。每种类型都有自己的一套方法。
所以我需要的是一个JS对象到C# - 对象RPC通信。
我的第一个想法是通过Signal / R Hub实现这一点,并利用这个漂亮的自动生成RPC代理功能。但我不确定这是否可行。我知道集线器是短暂的,但我正在寻求SignalR的一些支持来做到这一点。
我想继续下面这样做:
服务器:为每个实现接口的对象类型定义一个类。
客户端:通过网址检索代理。 url包含一个带有对象实例id
客户:调用代理的功能
服务器:当在集线器中调用该函数时,我想以某种方式获取对象实例的id。 (也许来自连接对象?)有了这个id我想在字典中查找我的对象并调用apporpriate方法。
我知道一个解决方案可能是在每个方法中将对象id作为参数,但我想避免这种情况。
答案 0 :(得分:0)
如果对象ID与SignalR连接一一对应,则可以使用Hub.Context.ConnectionId
而不是将对象ID作为参数传递给每个方法。
Hub.Context
还有其他有用的属性来访问请求Cookie和有效IPrincipal
等内容。
http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#contextproperty