代码之家  ›  专栏  ›  技术社区  ›  Tvde1

信号器获取用户所在的组

  •  1
  • Tvde1  · 技术社区  · 6 年前

    我正在制作一个1对1的聊天应用程序,我正在使用群组。

    您加入了一个组 Groups.Add(Context.ConnectionId, roomName)

    无论何时有消息发送,我都想打电话

    Clients.Group(roomName).addMessage(username, text);
    

    但为此我需要 roomName 变量如何检索用户加入的房间?

    1 回复  |  直到 6 年前
        1
  •  6
  •   TheGeneral    6 年前

    没有用于管理组的特定api,您需要自己保存此信息。

    There is a related question here

    有关更完整的信息,请参见信号器主题

    Working with Groups in SignalR

    信号器中的组提供了一种将消息广播到 已连接客户端的指定子集。一个组可以有任意数量的 客户端,并且客户端可以是任意数量组的成员。你 不必显式创建组。实际上,组是 第一次在调用中指定其名称时自动创建 组。添加,并在从中删除最后一个连接时将其删除 it的成员资格。有关使用组的介绍,请参见 How to manage group membership from the Hub class in the Hubs API -服务器 指导

    如何从Hub类管理组成员身份

    信号器中的组提供了一种将消息广播到 已连接客户端的指定子集。一个组可以有任意数量的 客户端,并且客户端可以是任意数量组的成员。

    要管理组成员身份,请使用提供的添加和删除方法 集线器类的Groups属性。

    此外

    信号器跟踪的是连接,而不是用户,所以如果您希望用户处于 同一组每次用户建立连接时 呼叫组。每次用户建立新连接时添加。

    简而言之,你必须自己做。中有一个示例 与信号机中的组一起工作 您可以如何在数据库中持久化用户和组信息。