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