【发布时间】:2011-08-09 09:01:31
【问题描述】:
在 socket.io 0.6 中,我有以下示例代码:
var io = require('/usr/lib/node_modules/socket.io');
var server = http.createServer(function(req,res){
var path = url.parse(req.url).pathname;
switch( path ){
....
//core codes
socket.broadcast(data);
}
}).listen(8080);
// ... ...
var socket = io.listen(server);
一切顺利。
但现在我已将 socket.io 更新为 0.7 并将 socket.broadcast 更改为 socket.sockets.broadcast.send(data) ;
遇到异常:无法调用“未定义”的发送?
谁能告诉我如何在不监听某个事件的情况下向所有人发送数据?
也许这是一种方法:
clients = new Array();
socket.on('connection',function(socket){ clients.push(socket);}
// ...
for(s in clients) s.send(data);
// ...
真的需要这样吗?
谢谢!
【问题讨论】:
-
只是一个旁注:不要使用 for(in) 来迭代数组,而是使用 for(;;)。
-
是的,我愿意!但还有什么想法?