SignalR 获取组用户在

Tvd*_*de1 1 c# signalr signalr-hub

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

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

每当发送消息时,我都想打电话

Clients.Group(roomName).addMessage(username, text);
Run Code Online (Sandbox Code Playgroud)

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

AAA*_*ddd 5

没有特定的 api 来管理组,您需要自己保存这些信息。

有一个相关的问题here

更完整的信息可以看Signalr主题

在 SignalR 中使用组

SignalR 中的组提供了一种向连接客户端的指定子集广播消息的方法。一个组可以有任意数量的客户端,并且一个客户端可以是任意数量组的成员。您不必显式创建组。实际上,当您第一次在对 Groups.Add 的调用中指定其名称时,将自动创建一个组,并在您从其中的成员资格中删除最后一个连接时将其删除。有关使用组的介绍,请参阅Hubs API - 服务器指南中的如何从 Hub 类管理组成员资格

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

SignalR 中的组提供了一种向连接客户端的指定子集广播消息的方法。一个组可以有任意数量的客户端,并且一个客户端可以是任意数量组的成员。

要管理组成员身份,请使用 Hub 类的 Groups 属性提供的 Add 和 Remove 方法。

而且

SignalR 跟踪连接,而不是用户,因此如果您希望用户每次建立连接时都在同一组中,则必须在每次用户建立新连接时调用 Groups.Add。

简而言之,你必须自己做。在 SignalR使用组中有一个示例,说明如何使用数据库保留用户和组信息。