SignalR 1.0 beta 连接工厂

标签 signalr

现在新版本的 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/

相关文章:

ASP.NET 在回发期间显示进度条

jquery - 从通用处理程序、SignalR 中的 C# 代码调用客户端方法

c# - Windows 服务上的 SignalR 自托管

c# - SignalR 2 StartAsync 永远不会返回

signalr - Blazor Server 每次使用的连接数受浏览器限制

c# - SignalR 中的匿名私有(private)聊天

javascript - 信号 R : How to send a complex object with XmppClient. 发送方法?

asp.net - Signalr 和 Nancyfx 集成

asp.net - SignalR 在 start().done() 之后并不总是准备好?

c# - 如何在 signalR 的 OnDisconnected 事件中停止计时器