【问题标题】:How efficient does io.emit send data?io.emit 发送数据的效率如何?
【发布时间】:2019-11-15 13:28:27
【问题描述】:

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

假设我们有 10 个连接的客户端。

在服务器端,我们使用 io.emit(„channel1“,payload) 发送消息。

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

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

如果将消息发送给所有 10 个客户端,我们将有很大的开销,因为其他 9 个客户端将完全忽略该消息。

或者我们应该使用命名空间?

【问题讨论】:

    标签: socket.io


    【解决方案1】:

    简短的回答是肯定的,它将发送给每个人,但如果您想将其发送到特定的频道,那么您需要emit to the namespace,这实际上只是一个端点。如果你想试试这个,那么有一个很好的 chrome 扩展 Firecamp

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

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 2017-04-25
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      相关资源
      最近更新 更多