web-dev-qa-db-ja.com

クライアントを切断するsocket.id?

切断されたクライアントのsocket.idを取得することは可能ですか?次のコードは、socket.idに対してundefinedを与えます。

Node.jsコード

io.sockets.on('connection', function() {
    socket.on('disconnect', function(socket) {
        console.log(socket.id);
    });
});
21
Nyxynyx

io.sockets.onが2番目の引数として取るコールバック関数は、ソケットという1つの引数を取ることになっています。あなたのものはそうではないので、2行目のsocket.onのソケットは未定義です。

また、socket.onのコールバックには引数が与えられていないため、その関数のsocketも未定義です。

ソケットパラメータを2番目の関数宣言から最初の関数宣言に移動すると、コードは機能するはずです。

io.sockets.on('connection', function (socket) {
    socket.on('disconnect', function () {
        console.log(socket.id);
    });
});
41
Felix Loether