套接字未在连接回调中定义



为什么回调中的套接字未定义?

main.js:26078 Uncaught TypeError: Cannot read property 'on' of undefined

控制台日志是一个套接字对象。

var jwt = sessionStorage.token;
console.log(socket);
socket.on('connect', function (socket) {  // undefined socket
  socket.on('authenticated', function () {
    //do other things
  })
  .emit('authenticate', {token: jwt}); //send the jwt
});

假设这是客户端代码,则没有传递给connect事件的socket参数,因此请将其从代码中删除。 通过将该参数命名为 socket ,您正在覆盖范围更大的 socket 变量,并且由于没有向该事件传递任何内容,因此该被覆盖的 socket 变量将被undefined。 更改为此内容:

var jwt = sessionStorage.token;
console.log(socket);
// remove socket argument from this next callback
socket.on('connect', function () {
  socket.on('authenticated', function () { // undefined socket
    //do other things
  })
  .emit('authenticate', {token: jwt}); //send the jwt
});

最新更新