2016-04-11 2 views
0

Je nœud de serveur, ce serveur crée une connexion socket tcp avec un autre côté serveur TCP. Je suis en train de tuyaux données tcp mais quand j'ai reçu un message pour la deuxième fois que je suis arrivé à la fois le nouveau message et le précédent (le premier) dans le même flux. Comment puis-je réparer cela?Node.js tube Socket dernier paquet

var net = require('net'); 
var HOST = '127.0.0.1'; // parameterize the IP of the Listen 
var PORT = 6969; // TCP LISTEN port 
net.createServer(function(sock) { 

    console.log('CONNECTED: ' + sock.remoteAddress + ':' + sock.remotePort); 
    sock.on('data', function(data) { 
     sock.write(data); 
     socket.pipe(socket); 
    }); 
    sock.on('close', function(data) { 
     console.log('CLOSED: ' + sock.remoteAddress + ' ' + sock.remotePort); 
    }); 
}).listen(PORT, HOST); 
+1

Qu'est-ce que vous * * réellement essayez d'accomplir ici? – mscdex

Répondre

0

Je suppose que vous voulez créer un serveur d'écho.

Alors vous avez deux options - soit la tuyauterie:

// [...] 
net.createServer(function(sock) { 
    sock.pipe(sock); 
} 
// [...] 

Ou vous souscrivez des données et écrire manuellement à la prise (qui est le même que tuyau)

// [...] 
net.createServer(function(sock) { 
    sock.on('data', function(data) { 
     sock.write(data); 
    }); 
} 
// [...] 

Avec votre programme actuel, quand quelqu'un envoie des données la première fois que vous faites écho aux données mais créez également une connexion de tuyau qui signifie que la prochaine fois les données sont envoyées deux fois (comme vous l'avez décrit).