Signalr 实现信号器组

Signalr 实现信号器组,signalr,Signalr,我正在为我的工作场所创建一个Signal聊天应用程序,供客户和支持人员使用。一切正常,但我需要防止客户相互见面,只看到在线的支持人员,同样,在支持端,让他们只看到在线客户,而不看到其他支持人员。我在谷歌上搜索了一下,发现实现这一点的最佳方法是使用组,这样groupA(支持人员)中的用户只能看到groupB(客户端)中的在线用户,groupB中的用户只能看到groupA中的在线用户 这是我的集线器类: `#区域-方法--- 在广播的情况下,您只需要user Clients.AllExcept,但由

我正在为我的工作场所创建一个Signal聊天应用程序,供客户和支持人员使用。一切正常,但我需要防止客户相互见面,只看到在线的支持人员,同样,在支持端,让他们只看到在线客户,而不看到其他支持人员。我在谷歌上搜索了一下,发现实现这一点的最佳方法是使用组,这样groupA(支持人员)中的用户只能看到groupB(客户端)中的在线用户,groupB中的用户只能看到groupA中的在线用户

这是我的集线器类:

`#区域-方法---


在广播的情况下,您只需要user Clients.AllExcept,但由于您试图显示已连接的用户,因此需要跟踪用户及其属于您自己的组,并手动发送用户列表

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
var connectionID = HttpContext.Request.Cookies["conn-id"].Value;
context.Clients.AllExcept(connectionID).addMessage(message);
var context=GlobalHost.ConnectionManager.GetHubContext();
var connectionID=HttpContext.Request.Cookies[“conn id”].Value;
context.Clients.AllExcept(connectionID).addMessage(message);
此代码示例取自此SO问题:


你连一个问题都没问?你想知道什么?我想知道如何实现两个组,这样组A可以查看组B中的在线用户,反之亦然,或者换句话说,用户不能看到自己组中的人,但可以看到其他组中的人
$.connection.hub.start().done(function () {
    registerEvents(chatHub);
    chatHub.server.joinGroup("GroupA")

});
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
var connectionID = HttpContext.Request.Cookies["conn-id"].Value;
context.Clients.AllExcept(connectionID).addMessage(message);