SignalR客户端是否收到未订阅的邮件?

时间:2013-06-07 20:48:53

标签: signalr signalr.client

如果我有一个signalR集线器向所有具有相当大的有效负载或私有信息的客户端发送消息,那么连接到集线器(同一组的一部分)的所有客户端都会收到消息,即使他们没有订阅那些在客户端的事件?

想知道客户端是否足够聪明,可以协商它对服务器的事件,以便服务器不会发送无关的数据?

谢谢!

1 个答案:

答案 0 :(得分:4)

是的,他们这样做。如果客户端订阅了集线器,它将接收通过该集线器的广播信道发送的所有消息。

除了发送到不包含客户端或专门发送给其他客户端的特定组之外,无法阻止客户端收到消息。

一些例子:

Clients.All.foo(); // All subscribed clients will foo invoked
Clients.Group("bar").foo(); // All subscribed clients to the hubs group "Bar" will have foo invoked.  If your client is not subscribed to "bar" it will not have "foo" invoked.
Clients.Client("AClientsConnectionId").foo(); // The client with the specified connection id will have foo invoked.