2017-11-18 209 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