Два связанных вопроса, которые могут быть более укоренены в моем незнании того, как / если браузеры предварительно разбирают javascript:
var ws = new WebSocket("ws://ws.my.url.com");
ws.onOpen = function() { ... };
Кажется, что нет никакого способа напрямую контролировать инициализацию WebSocket
, кроме оборачивания его в обратный вызов, поэтому я предполагаю, что соединение создается, как только код javascript загружается и попадает в конструктор?
Когда свойство onOpen
присоединяется к ws
? Есть ли возможность возникновения состояния гонки (если по какой-то причине у вас был какой-то код между определением сокета и определением onOpen
?), Так что onOpen
неразрывно связан до / после установления соединения (I знаю, что вы можете проверить ws.readyState
). В дополнение к этому, блокируется ли рукопожатие WebSocket?
Я понимаю, что на данный момент все это черновик, возможно, зависит от реализации, и я, возможно, упустил что-то ослепительно очевидное, но я не увидел ничего особенного в моих поисках / просмотре в Интернете через черновую спецификацию w3c, поэтому любая помощь в мое понимание внутренней работы websockets / javascript очень ценится!