现在,新版本的SignalR取消了IConnectionFactory接口,建议使用哪种模式设置客户端的连接ID?
最佳答案
不再建议在1.0中设置SignalR客户端的连接ID的任何模式。
最佳做法是维护SignalR服务器上的状态,该状态将应用程序的用户映射到连接ID。向此映射添加连接ID的明显位置是OnConnected。您可以使用OnDisconnected删除连接ID。
另一个选项(也可以在OnConnected中完成)是将客户端的连接ID添加到具有您之前在IConnectionIdFactory.CreateConnectionId中为客户端创建的名称的组。自然,该组仅包含一个客户端,因此您可以将发送到自定义连接ID的所有消息发送给该组。
注意:如果您使用mapping选项,并且您担心担心AppDomain重启并且将这种状态存储在某种静态变量中,而不是更持久地存储,则还可以尝试在OnReconnected中将连接ID添加到Map中。显然,如果要扩展SignalR,则需要共享状态。