2
Ich habe den folgenden Code:Knoten JS TCP Server nicht sofort die Daten aus dem Pufferspülung
// 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");
});
Als ich die Nachricht schreiben sie in einem Puffer gespeichert wird, sondern gespült erst, nachdem ich den Server schließen ... Was sollte ich tun, um den Puffer sofort nach dem Schreiben zu löschen? (Wie man sehen kann ich versuchte ‚setNoDelay‘ true)
Ich spielte mit einem ähnlichen Code und beobachtete, dass die Verwendung von socket.write (somedata) und socket.pipe (socket) auch das Ereignis 'data' auslöst, also bekommen wir Somedata zurück zu uns. Nur neugierig, hast du das gleiche beobachtet? –