Node.js:如何刷新socket?

Flu*_*ffy 6 sockets 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');
Run Code Online (Sandbox Code Playgroud)

然而,尽管有setNoDelay选项,但这不起作用,例如打印"mentoscola"而不是"mentos \ncola".我该如何解决?

arb*_*les 6

查看WriteableStreamapi和相关示例,您似乎应该自己设置休息或分隔符.

exports.puts = function (d) {
  process.stdout.write(d + '\n');
};
Run Code Online (Sandbox Code Playgroud)

因为您的套接字是一个流,所以数据将在没有您直接控制的情况下进行写入/读取,并且#write不会更改您的数据或假设您在写入之间中断,因为您可能通过套接字流式传输大量信息可能想设置其他分隔符.

我绝对不是这方面的专家,但这对我来说似乎是合乎逻辑的答案.

编辑:这是Nodejs流的重复,结论与我指定的答案相同:使用流不是逐行的,设置自己的分隔符.