javascript - 遍历 socket.io v1 中的套接字? "...has no method ' 客户的”

标签 javascript node.js sockets socket.io

在我能够写出这样的东西之前:

io.sockets.clients().forEach(function (socket) { 
    socket.emit(signal,data);
});

现在,我不能,我收到错误 Object #<Namespace> has no method 'clients'

还有其他方法吗?这是套接字 v1.0。 (或者我认为是 1.0.2)。

为此我知道我可以使用 io.emit() ,但我想遍历套接字并在计时器中对它们执行功能。我可以将所有内容重构为回调并将计时器设置为 io.on() , 但我认为我需要能够使用引用(我认为在这种情况下 javascript 会复制对象 socket 而不是引用它?)

举个例子

setInterval(function(){
    io.sockets.clients().forEach(function (socket) { 
        socket.emit('newMessage',someCalculations());
    });
},1000);

最佳答案

如果有关所有已连接套接字的信息必须发送到单个套接字,则

    for (var i in io.sockets.connected) {
        var s = io.sockets.connected[i];
        if (socket.id === s.id) {
           continue;
        }
        socket.emit('notify_user_state', s.notify_user_state_data)
    }

关于javascript - 遍历 socket.io v1 中的套接字? "...has no method ' 客户的”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23944629/

相关文章:

c++ - 使用同步或异步的单线程连接多个客户端?

javascript - 动态添加的选择更改事件未注册

node.js - 无法找到模块 - 使用 esm nodejs 应用程序开玩笑

ruby-on-rails - Ruby On Rails TCPSocket

android - 无法连接到 android 5.1 上的 native 本地套接字

node.js - 循环中的 Node Grunt 异步任务,闭包不起作用

javascript - Angular 2 在更改值后不更新 View

javascript - 使用 javascript 运行 Apache 服务器中存在的批处理文件

javascript - 隐藏 div 并显示另一个 div

javascript - iisnode 500.21 处理程序 "iisnode"在其模块列表中包含错误模块 "iisnode"