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

问题描述 投票:5回答:1

我想向连接到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];
    });
});

谢谢

javascript performance node.js sockjs
1个回答
0
投票

1。)for ... in慢于常规或一会儿,而不是很多2.)从对象中获取值也可能比从数组中获取值要慢(因为您需要从字符串中获取地址,但是您可以立即从数组索引中获取地址),也不是很多。

© www.soinside.com 2019 - 2024. All rights reserved.