socket客户端接收不到服务器端传来的数据?
发布于 7 年前 作者 mengLLLL 3787 次浏览 来自 问答

服务器端

io.on('connection', function(socket){
	socket.emit('news', { hello: 'world' });
  });

客户端

socket.on('news', function (data) {
  console.log('news data',data);
});

并没有报错😭,写法有问题吗?我查了好多资料都没解决,求救!

6 回复

官网上的例子也是, 服务器端:

io.on('connection', function (socket) {
  socket.emit('news', {hello: 'world'});
  socket.on('my other event', function (data) {
    console.log(data);
  });
})

客户端:

socket.on('news', function (data) {
  console.log(data);
  socket.emit('my other event', { my: 'data' });
});

客户端的console.log(data)什么也没有打印啊!

服务器端改成io.sockets.on(‘connection’, function (socket)试试

io.scoket是怎么处理离线消息的 比如用户网络中断一会,然后过几分种又连上了

@dlyt 我改了,还是不行😭

@mengLLLL 那就把代码贴全一点吧

@dlyt 解决了,然后有个新问题想请教一下,“私聊”的功能 服务器端

io.on('connection', function (socket) {
  socket.on('sendNotificationJoinTeam', function (from, to) {
    console.log('sendNotificationJoinTeam', from ,'to', to)
    user.find({userId: to}, function (err, results) {
      if(err){
        return console.error(err)
      }
      var obj = {};
      obj[results[0].userId] = socket;
      obj[results[0].userId].emit('to'+to,{hello:'haha'})
    })
  });
});

客户端

socket.on('to'+ $('#userId').val(), function (data) {
  alert('receive')
});

console.log('sendNotificationJoinTeam', from ,'to', to)这里是有反应的,前端没有任何反应,请问这是为什么?

回到顶部