断开连接时未定义Socket.io socket.handshake

时间:2020-03-31 20:53:32

标签: javascript node.js sockets socket.io

我有一个带有socket.io的NodeJS服务器,并设置了它来监听disconnect事件:

io.on('connection', function(socket) {
    console.log(socket.handshake); // this works
    console.log(socket.handshake.cookie);

  socket.on('disconnect', function(socket) {
    console.log(socket.handshake); // this does not
    console.log(socket.handshake.cookie);

  });
});

在这种情况下,'disconnect'事件socket.handshake返回未定义,因此导致TypeError: Cannot read property...等。connection事件记录了所有预期的情况。这是因为没有在断开连接时传递标头,如果是,则传递了 哪些信息?

本质上,我的问题是:

  1. socket.handshake事件中的第二对'disconnect'返回undefined的原因如何?
  2. 如果这是由disconnect事件socket发送不同的数据引起的,则发送什么数据
  3. 有什么方法可以从'disconnect'事件中获取Cookie?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试删除该行中的socket参数

   socket.on('disconnect', function(socket){