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