nodejs socket.on('数据' 如何在数据末尾没有行结束的情况下工作?
我的意思是nodejs如何在没有任何分隔符的情况下分隔每个数据,例如\ n
这个问题是因为我在剧本中发现了一个小错误
错误是:
在非常快速地发送数据时,所有数据都将附加到one和socket.on('数据'只会运行一次
例如
在客户端:
如果同时发送两个或模式数据(在相同的打开连接上),如下所示:
client.write('1');
client.write('2');
服务器上的socket.on('数据' 将被调用一次,数据将被调用12
如果sendig json数据
,这将会出错答案 0 :(得分:0)
最后我找到了解决方案
因为在nodejs tcp套接字中,每个块都不包含以前的块 这个技巧将100%发挥作用!
服务器:
socket.on('data', function (data) {
var newdata = ""+data;
var newdatachunks = newdata.split("\n");
for (var i = 0 ; i<(newdatachunks.length-1);i++) {
console.log("real data is :"+newdatachunks[i]);
}
});
客户:
在客户端,每条消息必须以\ n(或您喜欢的任何分隔符)结束
client.write("1\n");
client.write("2\n");
client.write("3\n");
client.write("4\n");
通知:如果你使用json,请不要忘记使用try / catch