io.emit发送数据的效率如何?

时间:2019-07-04 20:55:27

标签: socket.io

我们正在使用socket.io进行一些实时消息广播。

想象一下,我们有10个连接的客户端。

在服务器端,我们发送带有io.emit(“ channel1”,payload)的消息。

只有1个连接的客户端通过调用来监听消息“ channel1” socket.on(,channel1',function()...)

消息是真的发送给所有10个客户端,还是仅发送给1个侦听channel1的客户端?

如果将邮件发送给所有10个客户端,则开销将很大,因为其他9个客户端将完全忽略该邮件。

还是我们应该使用名称空间?

1 个答案:

答案 0 :(得分:0)

简短的回答是,它将发送给每个人,但是如果您想将其发送到特定的频道,则需要emit to the namespace,从本质上讲,这只是一个终点。如果您想尝试一下,那么可以使用一个很好的Chrome扩展名Firecamp

如果您熟悉Observable,那么Observable就像Websockets的实现。您订阅了一个事件(就像在JavaScript .addEventListener()中一样,然后就坐在那里。然后等待...然后等待..然后, BOOM 它会发出一个信号来监听和根据数据采取行动。我希望这可以清除它,如果没有,那么我将编辑以获取更多信息