我们正在使用socket.io进行一些实时消息广播。
想象一下,我们有10个连接的客户端。
在服务器端,我们发送带有io.emit(“ channel1”,payload)的消息。
只有1个连接的客户端通过调用来监听消息“ channel1” socket.on(,channel1',function()...)
消息是真的发送给所有10个客户端,还是仅发送给1个侦听channel1的客户端?
如果将邮件发送给所有10个客户端,则开销将很大,因为其他9个客户端将完全忽略该邮件。
还是我们应该使用名称空间?
答案 0 :(得分:0)
简短的回答是,它将发送给每个人,但是如果您想将其发送到特定的频道,则需要emit to the namespace,从本质上讲,这只是一个终点。如果您想尝试一下,那么可以使用一个很好的Chrome扩展名Firecamp
如果您熟悉Observable,那么Observable就像Websockets的实现。您订阅了一个事件(就像在JavaScript .addEventListener()
中一样,然后就坐在那里。然后等待...然后等待..然后, BOOM 它会发出一个信号来监听和根据数据采取行动。我希望这可以清除它,如果没有,那么我将编辑以获取更多信息