将用户添加到SignalR中的组

时间:2018-03-05 18:25:40

标签: asp.net-core signalr signalr-hub

将新用户添加到SignalR Hub中的群组时,如何检查用户是否已添加到该特定群组?我甚至需要担心这个吗?

在我的基于SignalR的聊天应用中,有多个聊天室,用户可以同时参与多个会议室。每次用户点击聊天室时,我都会将其设置为活动房间,这会调用我的SignalR Hub来确保用户在该组中 - 使用以下行:

await Groups.AddAsync(Context.ConnectionId, roomId);

我只是想确保如果我的代码尝试不止一次地将一个connectionId添加到一个组,我就不会收到任何错误,这就是为什么我试图找出我是否需要担心这种情况。如果是这样,我如何检查特定组中的当前connectionId。

BTW,我在最新版本的SignalR中对此进行了编码,这是ASP.NET Core 2.1 Preview-1的一部分。

2 个答案:

答案 0 :(得分:0)

是的,这是可能的!因此,如果客户在群组中不止一次,他将多次举办活动......

看看来源: https://github.com/aspnet/SignalR/blob/1790d6bdf088bab120cd14912d6d625d983fb077/src/Microsoft.AspNetCore.SignalR.Core/DefaultHubLifetimeManager.cs

https://github.com/aspnet/SignalR/blob/af286c81bbca00a532ad5297a8f35c9eb1310684/src/Microsoft.AspNetCore.SignalR.Core/HubGroupList.cs

在您调用AddAsync(...)

的情况下,您可以看到正在运行的内容

跟踪群组:

但是根据小组的跟踪,我认为它和#34; old" signalr: 您需要自己跟踪组的成员。 SignalR的小组仅用于消息传递。如果您想要会员资格,那么您需要自己进行跟踪。

答案 1 :(得分:0)