[英]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.