1

我正在通过 TCP 套接字连接到节点服务器,并且在每次后续调用中重复写入套接字的数据存在问题。

我的服务器调用以下函数写入每个连接的客户端:

clients.forEach(function (client) {
    var string = "hello";
    client.write(string);
    client.on('data', function(data) {
        console.log(data.toString());
    });
});

这有效并将字符串“hello”广播到每个连接的套接字。这个想法是每个客户端都会回复一个响应,该响应将输出到 console.log。

在每个客户上,我都有以下内容:

client.on('data', function(data) {
    console.log(data);  
    var response = "Hello back";
    console.log('RES: ' + response);
    client.write(response);
});

每个客户端都会收到 hello 并响应请求。问题出现了,在每个 N 响应中,服务器从每个客户端接收 N 次所有内容。

因此,在第一次交换时,它很简单

你好

你好回来

但第二个是:

你好

你好回来

你好回来

任何想法为什么会发生这种情况?我是否需要在每次交换时刷新套接字或其他东西?

4

0 回答 0