【问题标题】:Too many on-connection events with Socket.io, does it hurt?使用 Socket.io 的连接事件太多,有什么影响吗?
【发布时间】:2015-08-27 20:46:40
【问题描述】:

我有一个使用 node.js 的应用程序,其中多个对象引用了 socketio 实现。他们每个人都会打开一个 on-connection 事件,以便将他们的特定事件添加到套接字连接,如下所示:

this.io.on('connection', function(socket){
        socket.on('subs', function(sub){
            self.processSub(sub); 
        });
        // more events  
    });

我有 10 个这样的对象,我的想法是继续使用这种架构添加模块。

我的问题是:

socket.io 是专为这种用途设计的吗?它是否可能有一个严肃的性能考虑?

一如既往,感谢您的宝贵时间;)

【问题讨论】:

    标签: node.js performance events socket.io


    【解决方案1】:

    eventEmitters(即套接字)正是为这种用途而设计的,因此独立模块都可以添加自己的事件侦听器,从而保持独立于其他侦听器,但都可以访问公共事件。这是一个很好且有效的用法。事件侦听器的开销只不过是一个包含处理程序引用的数组条目,然后是调用该处理程序的函数调用。

    如果您要为同一个事件提供数千个侦听器,那么您可能会想知道这样做对性能的影响(只是因为会调用多少个函数),但除此之外,这是他们的设计目的。如果您的计数远少于此(您说的是 10),那么您完全没问题。

    【讨论】:

    • 那太好了,不用担心,一百多我都不考虑
    猜你喜欢
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2020-10-11
    • 2018-01-17
    • 2011-08-18
    • 2018-01-28
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多