Читать полные данные из потока из onMessage - PullRequest
1 голос
/ 02 сентября 2011

Как полностью прочитать event.data из WebSocket с помощью JavaScript?

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

В приведенном выше коде переменная msg показывает только частичные данные.Как получить полные данные с сервера WebSocket?

Ответы [ 2 ]

0 голосов
/ 02 сентября 2011

WebSockets - это транспорт на основе сообщений.Если сервер разбил «поток» на несколько порций сообщений, вы получите несколько событий сообщений, а первое событие сообщения не будет содержать всех ожидаемых данных.

Кроме того, определение WebSocket требует, чтобыобработчик onmessage вызывается для полных сообщений.Вы не можете получить частичные сообщения (если не нарушена реализация WebSocket в браузере).

Я бы попробовал что-то асинхронное вместо alert () для регистрации полученных вами сообщений.Например, попробуйте console.log (), если у вас есть Firebug или консоль Chrome Javascript.Вы накапливаете данные своих сообщений в текстовом поле HTML или просто перезаписываете их при получении сообщений?

0 голосов
/ 02 сентября 2011

event.data содержит полную информацию;это зависит только от того, сколько вы увидите.Окно предупреждения может содержать только определенное количество символов, потому что большее количество символов просто не поместится в поле предупреждения.alert ing не является хорошей практикой для отображения больших данных.

Более удобным способом является сохранение длины и проверка, например:

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

Длина должна быть простоправильная длина, т.е. длина отправленных вами символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...