现在新版本的 SignalR 已经取消了 IConnectionFactory 接口(interface),建议使用什么模式来设置客户端的连接 ID?
最佳答案
在 1.0 中不再有任何推荐的模式来设置 SignalR 客户端的连接 ID。
最佳做法是在 SignalR 服务器上维护将应用程序的用户映射到连接 ID 的状态。在此 map 中添加连接 ID 的明显位置是 OnConnected。您可以使用 OnDisconnected 删除连接 ID。
也可以在 OnConnected 中完成的另一个选项是将客户端的连接 ID 添加到具有您之前在 IConnectionIdFactory.CreateConnectionId 中为客户端创建的名称的组中。自然地,该组将只包含一个客户端,因此您可以将您发送到自定义连接 ID 的所有消息发送到该组。
注意:如果您使用映射选项,如果您担心 AppDomain 重新启动并且将此状态存储在某种静态变量而不是更持久的东西中,您也可以尝试在 OnReconnected 中将连接 ID 添加到映射。显然,如果您要扩展 SignalR,您将需要共享状态。
关于SignalR 1.0 beta 连接工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350158/