将用户添加到SignalR中的组

问题描述 投票:1回答:2

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

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

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

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

顺便说一句,我在最新版本的SignalR中编码,这是ASP.NET Core 2.1 Preview-1的一部分。

asp.net-core signalr signalr-hub
2个回答
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(...)的情况下正在运行的是什么

跟踪群组:

但根据群组的跟踪,我认为它与“旧”信号器中的相同:您需要自己跟踪群组成员。 SignalR的组仅用于消息传递。如果您想要会员资格,那么您需要自己进行跟踪。


© www.soinside.com 2019 - 2024. All rights reserved.