Для связи между ними необходимо инициализировать соединение с сервером с клиента. Для инициализации соединения требуется создание объекта 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( ); } }
Также возможно намеренно закрыть соединение с помощью следующего фрагмента кода: