Я пытаюсь реализовать WebSocket с возвратом к опросу. Если соединение WebSocket преуспевает, readyState
становится 1, но если он терпит неудачу, readyState
равно 3, и я должен начать опрос.
Я пробовал что-то вроде этого:
var socket = new WebSocket(url);
socket.onmessage = onmsg;
while (socket.readyState == 0)
{
}
if (socket.readyState != 1)
{
// fall back to polling
setInterval(poll, interval);
}
Я ожидал, что socket.readyState
обновится асинхронно, и позвольте мне прочитать его немедленно. Однако, когда я запускаю это, мой браузер зависает (я оставил его открытым примерно на полминуты, прежде чем сдаваться).
Я подумал, что возможно событие onreadyStateChanged
, но я не видел его в ссылке MDN.
Как мне это реализовать? По-видимому, пустой цикл не будет работать, и для этого события нет.