【发布时间】:2011-11-20 10:51:44
【问题描述】:
我搜索了 google、SignalR wiki 和 SignalR 代码本身(例如,广播功能、Signaler 等),但一无所获。
我编写了 ClientIDFactory 并成功地将 ClientID 设置为 UserID。 它可以工作,但现在用户无法从多个浏览器/选项卡进行连接。
我修改了函数并将随机字符串添加到 UserID。它有效。
现在我需要找到一种方法来获取用户的所有连接,将特定的消息发送到特定的 UserID。
我考虑循环客户端列表,通过string.split()找到UserID,但其他方式可能有用。
我没有使用集线器。只有 PersistentConnection。
谢谢,
【问题讨论】:
-
为什么需要客户列表?当建立新连接时,您不能在您的集线器中跟踪该列表。
-
我没有使用集线器。我无法使用 OnConnectedAsync/OnConnected 并跟踪自己,因为在 IIS AppPool Recycle(例如 - 代码更改)上,用户“连接”了旧会话中的 cookie,而不是触发此事件。 (谢谢大家)
-
无论哪种方式,您都需要自己跟踪。客户端可以在另一台机器上,但仍会收到通知。它实际上是底层消息存储和信号总线的实现细节。