Методы
>void close()
Если соединение еще не закрыто или для него еще не была запущена процедура закрытия, этот метод инициирует процесс его закрытия и присваивает свойству >readyState
значение CLOSING. События «message» могут продолжать возбуждаться даже после вызова метода >close(),
пока свойство >readyState
не получит значение CLOSED и не будет возбуждено событие «close».
>void send(string data)
Отправляет данные >data
на сервер, подключенный к другому концу соединения. Этот метод возбуждает исключение, когда вызывается до того, как будет сгенерировано событие «open», т.е. пока свойство >readyState
имеет значение CONNECTING. Протокол веб-сокетов поддерживает обмен двоичными данными, но на момент написания этих строк текущая версия прикладного интерфейса веб-сокетов поддерживала только текстовые сообщения.
Обработчики событий
Сетевые взаимодействия по своей природе являются асинхронными, и, подобно объекту >XMLHttpRequest
, объект >WebSocket
также опирается на использование событий. Он определяет четыре свойства регистрации обработчиков событий, а также реализует интерфейс >EventTarget
, благодаря чему обработчики событий можно также регистрировать с помощью методов интерфейса >EventTarget
. Все события, описываемые ниже, возбуждаются в объекте >WebSocket
. Ни одно из них не всплывает, и ни для одного из них не предусмотрено действий по умолчанию, которые можно было бы отменить. Отметьте, однако, что им передаются различные объекты событий.
>onclose
Событие «close» генерируется после закрытия соединения (и свойство >readyState
получит значение CLOSED). Обработчику события передается объект >CloseEvent
, который определяет, было соединение закрыто без ошибок или нет.
>onerror
Событие «error» генерируется, когда возникает сетевая ошибка или ошибка протокола веб-сокетов. Обработчику события передается обычный объект >Event
>onmessage
Когда сервер отправляет данные через веб-сокет, объект >WebSocket
возбуждает событие «message» и передает обработчику объект >MessageEvent
, свойство >data
которого ссылается на принятое сообщение.
>onopen
Конструктор >WebSocket()
возвращает управление еще до того, как будет установлено соединение с адресом url. Когда процедура установления соединения завершится и объект >WebSocket
будет готов к отправке и приему данных, будет возбуждено событие «open». Обработчику события передается обычный объект >Event
.
окно, вкладка или фрейм веб-броузера (EventTarget)
Объект >Window
представляет окно, вкладку или фрейм в броузере. Он подробно описан в главе 14. В клиентском JavaScript-коде объект