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”);