node.js - Node JS TCP 服务器没有立即刷新缓冲区中的数据

标签 node.js tcpserver

我有以下代码:

// 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)

最佳答案

我应该在字符串末尾添加一个新行...f#是什么?^&k... 像这样

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

关于node.js - Node JS TCP 服务器没有立即刷新缓冲区中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37889945/

相关文章:

delphi - 当客户端连接到 TIdTCPServer 时线程数增加

javascript - NodeJS Express 中每个请求的全局范围

node.js - 无法从浏览器连接到 Node.js Express 服务器

c - 如何在单个服务器中结合 TCP 和 UDP?

c# - C# 网络中的同步

c# - C# 中的 TCP 服务器在 2-3 天后导致 CPU 使用率达到 100%

css - Node compile.js 不生成组合的 css 文件

javascript - 如何在 nodejs json2csv 中的现有 csv 文件中追加新行?

javascript - API 的快速路由 - 拥有子资源时的 URL 处理程序

C、TCP 服务器上的 'fork: resource temporarily unavailable'