Nodejs setNoDelay()不起作用。是否有替换套接字缓冲区的替代方法?

时间:2018-01-19 15:51:05

标签: node.js sockets tcp

我正在使用这段代码将数据发送到Java应用程序。我想在不关闭连接的情况下发送多条消息。 Java应用程序将等待并打印每个传入的消息

var net = require('net');
var client = net.connect(1010, 'localhost');
client.setNoDelay();
client.write("asdfdsfsdf");
client.write("jghjhgjhgj");

问题是我不会收到2个单独的消息,但只有1个。此外,除非我调用client.end(),否则Java应用程序甚至不会收到数据。 如何避免关闭连接并刷新多条消息?

1 个答案:

答案 0 :(得分:0)

在数据末尾添加换行符。

var net = require('net');
var client = new net.Socket();
client.connect(1010, 'localhost', function() {
    client.setNoDelay();
    client.write("asdfdsfsdf\n");
    client.write("jghjhgjhgj\n");
});

我遇到了同样的问题。添加\ n解决了它。