繁体   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