2016-03-19 21 views
0

nodejs netのsocket関数内のすべてのプロセスを終了させるのに問題があります。ソケット切断後にループが実行され続けると、ソケットによって呼び出されるすべてのプロセスが終了します。Nodejs netでexitソケットを正しく処理する方法

`net.createServer(function (socket) { 

     socket.on('end', function() { 
     //How kill all processes of the current socket ??? 
     }); 
     socket.on('error', function() { 
     //How kill all processes of the current socket ??? 
     }); 

     i=0; 
     setInterval(function() {//Waiting other peer for 5sec 
     i++; 
     console.log("loop"); 
     if(i>=10){ 
      clearInterval(this); 
     } 
     }, 1000); 

}).listen(1000);` 
 

答えて

1
socket.disconect(0); 

接続を終了する必要があります。

ここ
+0

Thxをし、しかし、socket.disconectはsocket.io関数です。私の場合、netライブラリからソケットTCPを使用しています。 – han0idx

+0

socket.destroy();を試してみてください。またはsocket.end()です。 [ドキュメントへの参照](https://nodejs.org/api/net.html#net_socket_destroy) –

+0

それを試してみてください:) – han0idx

0

ショットスニペットお使いのコンピュータ上でそれを試してみたい場合:

var net = require('net'); 

net.createServer(function(socket) { 

    setInterval(function() {//Loop 
    console.log("tick"); 
    }, 1000); 

    socket.on('close', function() { 
     socket.end(); 
     socket.destroy(); 
     console.log("socket closed"); 
    }); 

}).listen(1000); 

socket.end()socket.destroy()net.createServerプログラム内の関数を殺していないがクローズソケットを刻み続ける:あなたのREPONSE用S

関連する問題