0

我有一个使用 net.connect 创建的 node.js TCP 连接,它使用 Event:'data' 回调来侦听传入数据。如果我几乎同时收到两条或更多条消息,我会丢失所有消息,但第一条除外。我在 Event:'data' 回调中所做的处理会导致我错过传入的消息吗?

myConnection = net.connect(18000, 192.168.1.50);
myConnection.on('data', function(data) {
  console.log("Received data");
  //time consuming process here (more than a few milliseconds)
});

如果两个或多个 TCP 消息(每个小于 200 字节)快速(在几毫秒内)发送到我的节点应用程序,则控制台仅打印一条消息:

Received data

运行 onData 回调时,Node 是否丢失了第二条和以后的消息?节点是否对消息进行排队,所以即使我在回调中,后续消息也会等待读取?发送我的 Node 应用程序消息的程序有可能没有正确发送它们,但我看过它,它似乎正在发送它们。

4

1 回答 1

1

您是否尝试输出接收到的数据?我认为您的所有数据都已正确接收。不能保证data事件的数量会等于write方法的数量,因为它只是一个流。

于 2013-04-02T01:59:45.807 回答