0
socket.on('data', function(data)
{
    console.log(socket.remoteAddress + ":" + socket.remotePort);
}

socket.on('close', function()
{
    console.log(socket.remoteAddress + ":" + socket.remotePort);
}

データハンドラからのログが表示されます127.0.0.1:8000

クローズハンドラからのログが表示されますundefined:undefined

IP:Portをキーとして使用して、接続されているソケットのリストを保持しようとしています。どちらが閉じているかわからない場合、どうすればリストから削除できますか?閉じたソケットのIP:ポートを閉じた後、どうすれば取得できますか?

4

3 に答える 3

4

これは私がクライアントを追跡する方法です:

server.on('connect', function(socket)
{
    socket.key = socket.remoteAddress + ":" + socket.remotePort;
    clients[socket.key] = socket;

    socket.on('close', function()
    {
        delete clients[socket.key];
    }
}

このソリューションを提案してくれた Node.js IRC チャネルの mscdex に感謝します。

于 2012-08-26T16:06:44.407 に答える
0
socket.on('connect', function()
{
   socket.address = socket.remoteAddress + ":" + socket.remotePort;//save  the address in socket object
   console.log(socket.remoteAddress + ":" + socket.remotePort);
});
socket.on('data', function(data)
{
   console.log(socket.address );
});

socket.on('close', function()
{
  console.log(socket.address );
});

データをソケットオブジェクトに関連付けたままにしてください。これが役立つことを願っています。

于 2012-08-27T00:48:25.570 に答える