SignalR组 - 在客户端或服务器上处理过滤?

我一直在阅读有关SignalR集线器和组的相当数量 . 特别是,我注意到你无法计算特定组中的连接数 .

是否在客户端或服务器上处理组的过滤?如果服务器,为什么SignalR不能公开计数?如果在客户端上,有没有办法只向特定客户端发送消息?

回答(1)

2 years ago

当您向特定的特定连接组发送消息时,在服务器上进行过滤(没有过滤,您只是在寻址那个连接或组) .

SignalR基于pub sub,因此没有连接列表本身 . 如果要跟踪连接列表,则必须处理连接并断开事件并将其保留在内存或某些持久存储中 .

我们没有给你连接列表的原因是因为我们存储的任何状态都会在节点之间缩小 . 如果我们给你一个连接列表,那就是一个失败的陷阱,因为如果你向你的服务器场添加另一个web节点,你突然必须在它之间同步状态 . 我们允许您通过其标识符来处理各个连接或组,并允许我们使用消息总线向该标识符的所有订阅者发布 .