Node.js:如何刷新套接字?

我想在发送下一个数据块之前刷新套接字

var net = require('net'); net.createServer(function(socket) { socket.on('data', function(data) { console.log(data.toString()); }); }).listen(54358, '127.0.0.1'); var socket = net.createConnection(54358, '127.0.0.1'); socket.setNoDelay(true); socket.write('mentos'); socket.write('cola'); 

但是,尽pipe有setNoDelay选项,但是,这不起作用,例如打印“mentoscola”而不是“mentos \ ncola”。 我该如何解决?

       

网上收集的解决方案 "Node.js:如何刷新套接字?"

查看WriteableStream api和相关示例,似乎应该自己设置您的rest或分隔符。

 exports.puts = function (d) { process.stdout.write(d + '\n'); }; 

因为你的套接字是一个stream,数据将被写/读,而不用你的直接控制, #write将不会改变你的数据,或者假设你#write在写入之间断开,因为你可以通过套接字,并可能要设置其他分隔符。

我绝对不是这个领域的专家,但这似乎是对我来说合乎逻辑的答案。

编辑 :这是一个Nodejsstream的重复,并得出了与我指定的答案相同的结论:使用stream是不是一行一行,设置自己的分隔符。

也许所有写在同一个tick中的数据都是以批处理方式发送的。

也许在接收端,节点将在发送数据事件之前合并单独的数据段。