JavaScript метод WebSocket.close()
Определение и применение
JavaScript метод close() объекта
WebSocket
позволяет закрыть подключение, или заканчивает попытку подключения.
Поддержка браузерами
Спецификация: websockets.spec.whatwg
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
close | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
JavaScript
socket.close();
socket.close(code);
socket.close(code, reason);
Спецификация
Значения параметров
| Параметр | Описание |
|---|---|
code |
Числовое значение, указывающее код состояния, объясняющее, почему соединение закрывается. Если код указан, допустимы 1000 или диапазон 3000–4999. Код 1005 обозначает отсутствие кода и не передаётся методу. Полный перечень кодов состояния приведён в RFC 6455, раздел 7.4.1. Необязательный параметр. |
reason |
Строковое значение, объясняющее почему соединение закрывается. Эта строка не должна превышать 123 байта текста UTF-8 (не символов). Необязательный параметр. |
Исключения
| Тип исключения | Описание |
|---|---|
InvalidAccessError |
Возникает, если указан код, отличный от 1000 и диапазона 3000–4999.
|
SyntaxError |
Возникает, если причина закрытия после кодирования UTF-8 занимает больше 123 байт. |
Пример использования
Для запуска нужен WebSocket-сервер по адресу ws://localhost:8080. Запустите свой сервер или замените
адрес в коде; обычного HTTP-сервера недостаточно. Это листинг для отдельной страницы, соединение на сайте не
открывается.
JavaScript
// создаем WebSocket подключение
const socket = new WebSocket("ws://localhost:8080");
// устанавливаем обработчик событий, вызываемый при открытии соединения
socket.onopen = function(event) {
socket.send("соединение с сервером установлено");
// отправляем определенные данные в формате JSON
const data = { type: "message", text: "Привет" };
socket.send(JSON.stringify(data));
};
// устанавливаем обработчик событий, вызываемый при получении сообщения от сервера
socket.onmessage = function(event) {
console.log("сообщение от сервера получено", event.data);
}
// устанавливаем обработчик событий, вызываемый при ошибке
socket.onerror = function(event) {
console.error("Ошибка WebSocket");
socket.close(); // закрываем подключение к серверу
}
// устанавливаем обработчик событий, вызываемый при закрытии соединения
socket.onclose = function(event) {
console.log("Соединение с сервером завершено");
}