socket.io为什么客户端接收不到新加入用户的消息?

我写的服务端关键代码如下:

...
var allChatter = {};
...
io.sockets.on('connection', function (socket) {
    var session = socket.id;
    // userList[session] = socket;
    allChatter[session] = socket.id;
    console.log(allChatter);
    socket.emit('newMem',allChatter);
    ...
})

客户端关键代码如下:

var socket = io.connect();
socket.on('newMem',function(allChatter){
    console.log("有新成员加入啦!");
})

目前的情况是,打开第一个窗口会接受到,浏览器输出内容,而第二个窗口打开后第一个窗口接收不到新成员加入的信息,也就是说都只能接受到自己加入的信息,看不到别人加入的信息.请问怎么解决这个问题呢?

阅读 4.2k
1 个回答

要广播的话服务端要用io.emit(),
在服务端,socket代表服务端跟某一个客户端的连接,socket.emit只是服务端向某一个客户端发送信息

ps: 感觉你要实现的功能,跟我前几周做过的一个小项目类似,可以参考一下,我在技术圈发的帖子 或者直接看代码>>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题