我搜索了google,SignalR wiki和SignalR代码本身(例如,广播功能,Signaler等),但没有找到任何内容。
我写了ClientIDFactory并成功将ClientID设置为UserID。 它可以工作,但现在用户无法从多个浏览器/选项卡连接。
我修改了函数并将随机字符串添加到UserID。它有效。
现在我需要找到一种方法来获取用户的所有连接,将特定消息发送到特定的UserID。
我考虑循环客户端列表,并通过string.split()查找UserID,但其他方式可能有用。
我没有使用Hub。只有PersistentConnection。
谢谢,
答案 0 :(得分:1)
我认为你的方法不对,因此已经浮出水面。你有服务器端的连接和断开方法挂钩。在连接上,您需要保持与某些元数据的连接,然后即使服务器重新启动,您也可以检查唯一用户或唯一客户端的元数据,并使用新ID重新连接它们。
例如
如果客户端丢失了连接ID,它应该断开连接,并且在新连接上它将具有新的连接ID,因此您应该考虑映射它们。 如果我连接7个不同手机的7个ID,只要您的系统知道他们都是此通知的预定接收者,就会向所有7个用户发送通知。持久保存这些知识的实现不是signalR的一部分,所以你必须自己实现它。