javascript websockets - контролировать начальное соединение / когда onOpen привязывается

Два связанных вопроса, которые могут быть больше связаны с моим незнанием того, как / если браузеры предварительно анализируют javascript:

var ws = new WebSocket("ws://ws.my.url.com");
ws.onOpen = function() { ... };

Кажется, нет никакого способа непосредственно контролировать инициализациюWebSocketпомимо обертывания в обратном вызове, поэтому я предполагаю, что соединение создается, как только код javascript загружается и попадает в конструктор?

КогдаonOpen собственность привязывается кws? Есть ли возможность возникновения состояния гонки (если по какой-то причине у вас был какой-то код между определением сокета и определениемonOpen?) так чтоonOpen неразрывно связан до / после установления соединения (я знаю, что вы можете при желании проверитьws.readyState). В дополнение к этому, блокирует ли рукопожатие WebSocket?

Я понимаю, что на данный момент все это черновик, возможно, зависит от реализации, и я, возможно, упустил что-то ослепительно очевидное, но я не увидел ничего особенного в моих поисках / просмотре в Интернете через черновую спецификацию w3c, поэтому любая помощь в моем понимании Внутренняя работа websockets / javascript очень ценится!

Ответы на вопрос(4)

Ваш ответ на вопрос