2016-06-17 8 views
2

からのデータは、私は次のコードを持ってすぐにフラッシュしない:何...私は私がサーバーを閉じた後にのみ、バッファに格納しますがフラッシュされるメッセージを書くときノードJS TCPサーバーバッファ

// Setting up the TCP: 
var server = net.createServer(function(socket) { 
console.log('Android Client connected'); 

socket.setNoDelay(true); 

socket.on('data', function(data) { 
    console.log(data.toString()); 
    var json = JSON.parse(data.toString()); 

    if(json.id == 1) { 
    socket.world = findAnEmptyWorld(); 
    socket.player = socket.world.addPlayer(json.data); 
    socket.player.socket = socket; 

    tcpClients.push(socket); 

    socket.write(JSON.stringify({id: 3, data: socket.player.toJSON()})); 
    socket.pipe(socket); 
    } 
}); 
}); 

server.listen(4444, function() { 
console.log("TCP server listening on port 4444"); 
}); 

を書き込み直後にバッファをフラッシュする必要がありますか? (私が試した見ることができるように「setNoDelay」trueに)

+0

私も同様のコードを使い、socket.write(somedata)とsocket.pipe(socket)を使用すると 'data'イベントがトリガーされるので、somedataが返されることがわかりました。好奇心が強い、あなたは同じことを観察しましたか? –

答えて

0

私は単なる文字列の末尾の後に新しい行を置く必要があります...何のF#の?^ & K ....その

socket.write(JSON.stringify({id: 3, data: socket.player.toJSON()}) + "\n"); 
よう