Node.js 只有一个客户端正在接收消息

标签 node.js websocket

据我所知,除非另有说明,如果服务器发送消息,所有客户端都应该收到它。但就我而言,只有一个客户收到消息。

客户端:

(function () {
  window.Network = {
    socket : null,  
    initialize : function(socketURL) {
      this.socket = io.connect(socketURL);
      this.socket.on('new move', this.add);     
    },  
   add : function(data) {   
      var msg = $('<div class="msg"></div>')       
      .append('<span class="text">' + data.x+'/'+data.y + '</span>');

      $('#messages')
        .append(msg)
        .animate({scrollTop: $('#messages').prop('scrollHeight')}, 0);
    },   
   send : function(data) {
      this.socket.emit("move",data);
      return false;
    }
  };
}());

服务器:

io.sockets.on('connection', function (socket) {
    socket.on('move', function (data) {
    console.log(data);
    socket.emit("new move",data);
  }); 
});

如果我打开多个客户端并使用“发送”功能,则只有发送它的客户端才会收到来自服务器的发送。 知道我做错了什么吗? 谢谢

最佳答案

要在服务器端全局发出,请使用以下命令:

io.sockets.emit('new move', 'data1');

发送到当前套接字:

socket.emit('function', 'data1', 'data2');

向除客户之外的所有人广播:

socket.broadcast.emit('function', 'data1', 'data2');

Source

关于Node.js 只有一个客户端正在接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849247/

相关文章:

javascript - 从 &lt;iframe&gt; 或 <object> 中获取变量的值

php - 没有守护进程的 PHP 中的 WebSocket 服务器?

javascript - Nodejs和WebSockets构造失败 'WebSocket' : The subprotocol '[object Object]' is invalid

javascript - node.js 和 socket.io。 websocket 的传输类型配置?

node.js - Node Express res.set() 不起作用

ruby - 使用 child_process 从 io.js 运行/安装 ruby​​ gem

node.js - 如何在不使用位置运算符 $ 的情况下更新 mongodb 文档中数组中的嵌套文档?

javascript - Express.js 路由没有意义

javascript - NestJS WebSocketGateway 未初始化

javascript - WebSocket:调用 close() 不会触发 onclose 处理程序?