在信号器中,对于打开的每个标签,ConnectionId为用户注册。
我使用以下代码向用户发送消息。 1 2
hubContext.Clients.Clients(user.ConnectionIds.ToLi st()); receiveNotification(message,userID,link);
我遇到的问题是我想向用户发送一次消息,而不是发送给ConnectionId的消息。
如何找到其中一个活动的ConnectionId并发送该消息?
有更好的方法吗?
我也在这个链接上工作
https://stackoverflow.com/questions/...ovider-new-2-0
但是因为 我不使用request.User.Identity.Name,此方法不起作用。我正在使用我的用户ID。我正在读桌子。 我的应用程序中request.User.Identity.Name的值为空,因为我正在从数据库中的表中读取用户信息
感谢您的建议
答案 0 :(得分:0)
您可以在存储在内存中的地图中保留连接和用户信息。
private readonly Dictionary<T, HashSet<string>> _connections =
new Dictionary<T, HashSet<string>>();
你可以在这里找到完整的例子: