【发布时间】:2013-04-03 06:11:20
【问题描述】:
我想向所有连接到我的 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];
});
});
谢谢
【问题讨论】:
-
过度优化。我怀疑你永远不会看到差异。
-
我正在尝试在我的共享服务器上快速且内存不足。
-
让我们从基本问题开始:您是否真的遇到了速度/内存使用问题?还是您正在预先优化(这是万恶之源)?无论是哪种优化,都不会显着提升性能。
-
引用 conn 对象而不是克隆它可能是个好主意。我不知道怎么做。
-
我建议使用内置支持广播的socket.io。如果你愿意,我可以发布一个例子
标签: javascript performance node.js sockjs