2017-11-18 167 views
0

怎样的NodeJS socket.on(“数据”作品没有行结束在数据的结束?怎样的NodeJS socket.on(“数据”的作品?

我的意思是如何的NodeJS没有任何分隔每个数据分开像\ n

这个问题,是因为我发现在我的剧本一个小错误

的错误是:

发送数据非常快,当

,所有数据都将被连接到一个和socket.on(”数据'将只运行一次

例如

在客户端:

如果发送在同一时间这样的两个或模式的数据(在相同的开放连接):

client.write('1'); 
client.write('2'); 

在服务器socket.on ('数据'将被调用一次,数据将是12

并且如果sendig json数据将会出错

+1

这是预期的行为。您正在收到您发送的数据,而分隔符不是其中的一部分。如果你想要,你可以自己添加一个分隔符,并在另一侧解析它。或者使用第三方软件为您管理。 –

+0

tnx,看到解决方案打击 – user3807476

回答

0

终于让我找到在TCP的NodeJS插座解决方案

以来,每块不包含前一块 这一招将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