在我的SignalR Hub
中向组中添加新用户时,如何检查用户是否已添加到该特定组?我甚至需要担心吗?
在我的基于SignalR
的聊天应用程序中,有多个聊天室,用户可以同时参与多个房间。每次用户点击聊天室时,我都会将其设置为活动房间,并调用我的SignalR Hub
来确保用户在该组中 - 使用以下行:
await Groups.AddAsync(Context.ConnectionId, roomId);
我只是想确保如果我的代码尝试多次向一个组添加一个connectionId,我将不会得到任何错误,这就是为什么我想知道我是否需要担心这种情况。如果是这样,我如何检查特定组中的当前connectionId。
顺便说一句,我在最新版本的SignalR
中编码,这是ASP.NET Core 2.1 Preview-1的一部分。
是的,这是可能的!因此,如果一个客户在一个组中不止一次,他将多次获得一个事件......
和
在那里你可以看到在你调用AddAsync(...)的情况下正在运行的是什么
跟踪群组:
但根据群组的跟踪,我认为它与“旧”信号器中的相同:您需要自己跟踪群组成员。 SignalR的组仅用于消息传递。如果您想要会员资格,那么您需要自己进行跟踪。
如上所述 - https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/working-with-groups#overview,没有办法检查用户是否属于某个组。
你必须自己编码。同一篇文章包括一些例子: