【问题标题】:signalR: how to send a message to the user once, not to the number of ConnectionIdsignalR:如何向用户发送一次消息,而不是向ConnectionId的数量
【发布时间】:2017-10-23 17:09:44
【问题描述】:

在信号器中,对于打开的每个标签,ConnectionId 都会为用户注册。

我使用以下代码向用户发送消息。 1 2

hubContext.Clients.Clients(user.ConnectionIds.ToList()); receiveNotification(消息、用户 ID、链接);

我的问题是我想向用户发送一次消息,而不是ConnectionId的数量。

如何找到它的一个活动 ConnectionId 并发送该消息?

有没有更好的办法?

我也在这个链接上工作

https://stackoverflow.com/questions/...ovider-new-2-0

但是因为 我不使用request.User.Identity.Name,这个方法不起作用。我正在使用我的用户 ID。我在看表。 我的应用程序中 request.User.Identity.Name 的值为空,因为我正在从数据库中的表中读取用户信息

感谢您的建议

【问题讨论】:

    标签: signalr


    【解决方案1】:

    您可以在存储在内存中的地图中保留连接和用户信息。

    private readonly Dictionary<T, HashSet<string>> _connections =
                new Dictionary<T, HashSet<string>>();
    

    你可以在这里找到完整的例子:

    https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/mapping-users-to-connections

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      相关资源
      最近更新 更多