WebSocket

Объект WebSocket предоставляет API для создания и управления WebSocket-соединением с сервером, а также для отправки и получения данных через это соединение.

Для создания WebSocket используйте конструктор WebSocket() (en-US).

Примечание: Эта возможность доступна в Web Workers.

EventTarget WebSocket

Конструктор

WebSocket() (en-US)

Возвращает созданный объект WebSocket.

Свойства экземпляра

WebSocket.binaryType (en-US)

Тип используемых в соединении бинарных данных.

WebSocket.bufferedAmount (en-US) Только для чтения

Количество байтов данных в очереди.

WebSocket.extensions (en-US) Только для чтения

Расширения, выбранные сервером.

WebSocket.protocol (en-US) Только для чтения

Подпротокол, выбранный сервером.

WebSocket.readyState (en-US) Только для чтения

Текущее состояние соединения.

WebSocket.url (en-US) Только для чтения

Абсолютный URL-адрес WebSocket.

Методы экземпляра

WebSocket.close() (en-US)

Закрывает соединение.

WebSocket.send() (en-US)

Добавляет в очередь данные для отправки.

События

Подписывайтесь на события с помощью addEventListener() или присвоением обработчика события свойству oneventname этого интерфейса.

close (en-US)

Возникает, когда соединение с WebSocket закрыто. Также доступно через свойство onclose

error (en-US)

Возникает, когда соединение с WebSocket было закрыто из-за ошибки, например, когда не удалось отправить какие-то данные. Также доступно через свойство onerror.

message (en-US)

Возникает, когда через WebSocket получены данные. Также доступно через свойство onmessage.

open (en-US)

Возникает, когда соединение с WebSocket открыто. Также доступно через свойство onopen.

Примеры

js
// Создание WebSocket-соединения.
const socket = new WebSocket("ws://localhost:8080");

// Соединение открыто
socket.addEventListener("open", (event) => {
  socket.send("Hello Server!");
});

// Получение сообщений
socket.addEventListener("message", (event) => {
  console.log("Message from server ", event.data);
});

Спецификации

Specification
WebSockets Standard
# the-websocket-interface

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также