繁体   English   中英

从 sockjs-node 广播的有效方法?

[英]Efficient way to broadcast from sockjs-node?

我想向所有连接到我的 sockjs-node 服务器的客户端广播消息。

现在我有以下代码

var clients = {};
var echo = sockjs.createServer();
echo.on('connection', function(conn) {
    clients[conn.id] = conn;

    for(key in clients) {
        if(clients.hasOwnProperty(key)) {
            clients[key].write('test');
        }
    }

    conn.on('close', function() {
        delete clients[conn.id];
    });
});

有没有更有效的方法来做到这一点?

可能是

var clients = [];
var echo = sockjs.createServer();
echo.on('connection', function(conn) {
    var index = clients.push(conn);

    var lenght = clients.length;
    while(length--) {
        if(clients[length] !== undefined) {
            clients[length].write('test');
        }
    }

    conn.on('close', function() {
        delete clients[index];
    });
});

谢谢

1.) for...in 比常规的要慢一段时间,但不是很多
2.) 也可能从对象中获取值比从数组中获取值要慢(因为您需要从字符串中获取地址,但您可以立即从数组索引中计算地址),也不是很多
所以第二个更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM