Учебники

WebSockets — События и акции

Для связи между ними необходимо инициализировать соединение с сервером с клиента. Для инициализации соединения требуется создание объекта Javascript с URL-адресом на удаленном или локальном сервере.

var socket = new WebSocket(“ ws://echo.websocket.org ”);

Упомянутый выше URL-адрес является публичным адресом, который можно использовать для тестирования и экспериментов. Сервер websocket.org всегда включен, и когда он получает сообщение и отправляет его обратно клиенту.

Это самый важный шаг для обеспечения правильной работы приложения.

Веб-сокеты — События

Существует четыре основных события Web Socket API —

  • открыто
  • Сообщение
  • близко
  • ошибка

Каждое из событий обрабатывается путем реализации таких функций, как onopen, onmessage , onclose и onerror соответственно. Это также можно реализовать с помощью метода addEventListener.

Краткий обзор событий и функций описывается следующим образом:

открыто

Как только соединение между клиентом и сервером установлено, событие open запускается из экземпляра Web Socket. Это называется начальным рукопожатием между клиентом и сервером. Событие, которое возникает после установления соединения, называется onopen .

Сообщение

Сообщение о событии происходит обычно, когда сервер отправляет некоторые данные. Сообщения, отправляемые сервером клиенту, могут включать текстовые сообщения, двоичные данные или изображения. Всякий раз, когда данные отправляются, запускается функция onmessage .

близко

Событие Close отмечает окончание связи между сервером и клиентом. Закрытие соединения возможно с помощью события onclose . После отметки окончания связи с помощью события onclose никакие сообщения не могут быть далее переданы между сервером и клиентом. Закрытие мероприятия также может произойти из-за плохой связи.

ошибка

Ошибка отмечает какую-то ошибку, которая происходит во время общения. Это отмечается с помощью события onerror . Ошибка всегда сопровождается разрывом соединения. Подробное описание каждого события обсуждается в следующих главах.

Веб-сокеты — Действия

События обычно инициируются, когда что-то происходит. С другой стороны, действия предпринимаются, когда пользователь хочет, чтобы что-то произошло. Действия выполняются путем явных вызовов с использованием функций пользователей.

Протокол Web Socket поддерживает два основных действия, а именно:

  • Отправить( )
  • близко( )

Отправить ( )

Это действие обычно предпочтительнее для некоторой связи с сервером, которая включает в себя отправку сообщений, которые включают текстовые файлы, двоичные данные или изображения.

Сообщение чата, отправляемое с помощью действия send (), выглядит следующим образом:

// get text view and button for submitting the message
var textsend = document.getElementById(“text-view”);
var submitMsg = document.getElementById(“tsend-button”);

//Handling the click event
submitMsg.onclick = function ( ) {
   // Send the data
   socket.send( textsend.value);
}

Примечание. Отправка сообщений возможна только при открытом соединении.

близко ( )

Этот метод означает до свидания рукопожатие. Он полностью завершает соединение, и никакие данные не могут быть переданы до тех пор, пока соединение не будет восстановлено.

var textsend = document.getElementById(“text-view”);
var buttonStop = document.getElementById(“stop-button”);

//Handling the click event
buttonStop.onclick = function ( ) {
   // Close the connection if open
   if (socket.readyState === WebSocket.OPEN){
      socket.close( );
   }
}

Также возможно намеренно закрыть соединение с помощью следующего фрагмента кода: