簡體   English   中英

從onMessage讀取流中的完整數據

[英]Read complete data from stream from onMessage

如何使用JavaScript從WebSocket完全讀取event.data

onMessage: function(event) {
 var msg = event.data;
 alert(msg);
}

在上面的代碼中,變量msg僅顯示部分數據。 如何從WebSocket服務器接收完整的數據?

event.data包含完整信息; 這僅取決於您的輸出結果。 警報框最多只能包含特定數量的字符,因為更多的字符根本無法容納在警報框中。 alert不是顯示大數據的好習慣。

一種更方便的方法是保存長度並檢查,例如:

onMessage: function(event) {
    var msg = event.data;
    alert(msg.length);
}

該長度應為正確的長度,即您發送的字符的長度。

WebSockets是基於消息的傳輸。 如果服務器將“流”分為幾個消息塊,那么您將收到幾個消息事件,而第一個消息事件將不會包含您期望的所有數據。

同樣,WebSocket定義要求onmessage處理程序被調用以獲取完整消息。 您無法獲得部分消息(除非瀏覽器的WebSocket實現被破壞)。

我會嘗試使用異步方法而不是alert()來記錄您收到的消息。 例如,如果您具有Firebug或Chrome Javascript控制台,請嘗試console.log()。 您是在HTML文本框中累積消息數據還是在接收消息時將其覆蓋?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM