15

我一直在阅读有关 SignalR 集线器和组的大量内容。特别是,我注意到您无法计算特定组中的连接数。

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

4

1 回答 1

34

当您将消息发送到特定连接的特定组时,过滤会在服务器上进行(没有过滤,您只是针对一个连接或组)。

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

我们不给你一个连接列表的原因是因为我们存储的任何状态都会伤害跨节点的扩展。如果我们给你一个连接列表,这是一个失败的坑,因为如果你向你的农场添加另一个 web 节点,你突然必须在它之间同步状态。我们允许您通过其标识符来处理单个连接或组,这允许我们使用消息总线向该标识符的所有订阅者发布。

于 2012-06-22T16:06:21.977 回答