节点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"); }); 

当我写这条消息时,它被存储到一个缓冲区中,但是只有在closures服务器之后才被刷新……我应该怎样在写入后立即刷新缓冲区? (正如你所看到的,我尝试了'setNoDelay'为true)

我应该在string结束后放一个新的行…什么是f#?^&k ….这样的

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