Signalr 信号器1.0测试版连接工厂

Signalr 信号器1.0测试版连接工厂,signalr,Signalr,既然新版本的Signal已经取消了IConnectionFactory接口,那么建议使用什么模式来设置客户端的连接id?在1.0中不再有任何建议的模式来设置Signal客户端的连接id 最佳做法是在您的SignalR服务器上维护将应用程序的用户映射到连接id的状态。向该映射添加连接id的明显位置是OnConnected。您可以使用OnDisconnected删除连接ID 另一个选项(也可以在OnConnected中完成)是将客户端的连接id添加到一个组中,该组的名称与之前在IConnection

既然新版本的Signal已经取消了IConnectionFactory接口,那么建议使用什么模式来设置客户端的连接id?

在1.0中不再有任何建议的模式来设置Signal客户端的连接id

最佳做法是在您的SignalR服务器上维护将应用程序的用户映射到连接id的状态。向该映射添加连接id的明显位置是OnConnected。您可以使用OnDisconnected删除连接ID

另一个选项(也可以在OnConnected中完成)是将客户端的连接id添加到一个组中,该组的名称与之前在IConnectionIdFactory.CreateConnectionId中为客户端创建的名称相同。当然,该组将只包含一个客户端,因此您可以将本应发送到自定义连接id的所有消息发送到该组


注意:如果使用映射选项,如果您担心AppDomain重新启动,并且将此状态存储在某种静态变量中,而不是更持久的变量中,则还可能尝试在OnReconnected中向映射添加连接ID。显然,如果您要扩展SignalR,则需要共享状态。

谢谢您的回答。我只是希望我更喜欢这个答案=)是的,我也很不安,你删除了这个IConnectionIdFactory接口。你为什么不让用户随心所欲地使用这个或新的呢?这是否也意味着SignalR在打开超过5个选项卡时无法工作(仅在Chrome和FF上尝试过,不知道其他浏览器)??如果每个选项卡都有不同的connectionid,Chrome最多可以打开6个到同一服务器的连接。。。哎哟任何解决方法(对于较旧版本的SignalR,解决方法是设置connectionid客户端)。如果优化不是问题,那么为每个客户端创建一个具有不同连接id的组也是一个更好的主意。