2016-04-11 18 views
0

Düğüm sunucumuz var, Bu sunucu diğer taraf TCP sunucusuyla bir tcp soket bağlantısı oluşturur. Ben tcp veri boru çalışıyorum ama ikinci kez bir mesaj alındığında ben aynı akış içinde hem yeni mesaj hem de bir öncekini (ilk) aldım. Bunu nasıl düzeltebilirim?Node.js Socket pipe son paket

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

Neler gerçekte burada yapmaya çalışıyorsunuz? – mscdex

cevap

0

Bir yankı sunucusu oluşturmak istediğinizi varsayalım. Geçerli program ile

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

(boru ile aynıdır)

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

Yoksa verileri abone ve elle soketine yazma: ya boruları -

Yani iki seçeneğiniz var Birisi veriyi ilk kez gönderdiğinde veri eklediğinde, aynı zamanda bir dahaki sefere veriyi iki kere gönderildiği anlamına gelen bir boru bağlantısı oluşturur (açıkladığınız gibi).