Javascript 将事件从服务器发送到客户端,然后断开套接字(从服务器)的连接

Javascript 将事件从服务器发送到客户端,然后断开套接字(从服务器)的连接,javascript,node.js,socket.io,emit,Javascript,Node.js,Socket.io,Emit,我想将事件发送回Socket.io中的客户端,然后立即断开客户端。问题是调用socket.emit()不会发出任何内容。。。 你知道吗,或是遇到了这样的问题 我的代码如下: -在服务器上: userCredentialsCheck: function (socket, next, callback) { appLogSys.info('Check cookie!'); ..... var handshake = socket.request; .....

我想将事件发送回Socket.io中的客户端,然后立即断开客户端。问题是调用socket.emit()不会发出任何内容。。。 你知道吗,或是遇到了这样的问题

我的代码如下: -在服务器上:

userCredentialsCheck: function (socket, next, callback) {
    appLogSys.info('Check cookie!');
    .....
    var handshake = socket.request;
    .....
    parseCookie(handshake, null, function (err, data) {
        sessionSrv.get(handshake, function (err, session) {
            if (err) {
                appLogSys.error(err.message);
                next(new Error(err.message));
            }
            else
            {
                ......
                socket.emit('na', 'Error checking session! Good bye!');
                socket.disconnect();
            }
          })
    })
};
在客户端:

appSocket.on('na', function(d){
        console.log('Error: '+d);
        console.log('Now, redirect!');
        //REDIRECT!
        var delay = 1000; //Your delay in milliseconds
        var URL   = '/';
        setTimeout(function(){ window.location = URL; }, delay);
    });

谢谢大家!

如果你不断开连接,它会发出信号吗?不,我没有断开连接就试过了,但仍然没有结果……那么你的代码范围还不够窄。如果断开连接的行为对实际问题没有影响,那么这不应该是问题的一部分。此时,问题可能是:
err
是真的,或者
socket.emit
无法发出。下一个逻辑步骤是测试err的值,然后在没有身份验证部分的情况下单独测试socket.emit。Kevin B,断开连接起作用,它断开了套接字的连接,问题是它没有将事件发送到客户端。。。