如何使用JavaScript从WebSocket中完全阅读event.data
?
onMessage: function(event) {
var msg = event.data;
alert(msg);
}
在上面的代码中,变量msg
仅显示部分数据。如何从WebSocket服务器接收完整的数据?
答案 0 :(得分:0)
event.data
包含完整信息;它只取决于你的输出你会看到多少。警报框最多只能包含特定数量的字符,因为更多字符根本不适合警报框。 alert
不是显示大数据的好方法。
更方便的方法是保存长度并检查,例如:
onMessage: function(event) {
var msg = event.data;
alert(msg.length);
}
长度应该是正确的长度,即您发送的字符的长度。
答案 1 :(得分:0)
WebSockets是基于消息的传输。如果服务器已将“流”分成几个消息块,那么您将收到多个消息事件,并且第一个消息事件将不具有您期望的所有数据。
此外,WebSocket定义要求为完整消息调用onmessage处理程序。你不能得到部分消息(除非浏览器的WebSocket实现被破坏)。
我会尝试使用异步而不是alert()来记录您收到的消息。例如,如果您有Firebug或Chrome Javascript控制台,请尝试使用console.log()。您是在HTML文本框中累积消息数据还是在收到消息时覆盖它?