WebSockets - События и Действия

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

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

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

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

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

Существует четыре основных API веб-сокетов events -

  • Open
  • Message
  • Close
  • Error

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

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

открыто

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

Сообщение

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

Закрыть

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

ошибка

Ошибки отмечаются ошибкой, произошедшей во время общения. Отмечается с помощьюonerror событие. 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);
}

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

Закрыть ( )

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

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( );
   }
}

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

socket.close(1000,”Deliberate Connection”);