Обложка канала

Senior Frontend - javascript, html, css

20191 @seniorFront

Senior Front - канал для front-end программистов, здесь есть много всего про CSS3, Javascript, Html5, Angular, React, видео / статьи / курсы

Senior Frontend - javascript, html, css

3 года назад
Открыть в
WebSocket Протокол WebSocket, обеспечивает возможность обмена данными между браузером и сервером через постоянное соединение. Данные передаются по нему в обоих направлениях в виде «пакетов», без разрыва соединения и дополнительных HTTP-запросов. WebSocket особенно хорош для сервисов, которые нуждаются в постоянном обмене данными, например онлайн игры, торговые площадки, работающие в реальном времени, и т.д. Чтобы открыть веб-сокет-соединение, нам нужно создать объект new WebSocket, указав в url-адресе специальный протокол ws:
 let socket = new WebSocket("ws://javascript.info");

Как только объект WebSocket создан, мы должны слушать его события. Их всего 4: open – соединение установлено, message – получены данные, error – ошибка, close – соединение закрыто. …А если мы хотим отправить что-нибудь, то вызов socket.send(data) сделает это. Вот пример:
 let socket = new WebSocket("wss://javascript.info/article/websocket/demo/hello");

 socket.onopen = function(e) {
   alert("[open] Соединение установлено");
   alert("Отправляем данные на сервер");
   socket.send("Меня зовут Джон");
 };

 socket.onmessage = function(event) {
   alert(`[message] Данные получены с сервера: ${event.data}`);
 };

 socket.onclose = function(event) {
   if (event.wasClean) {
     alert(`[close] Соединение закрыто чисто, код=${event.code} причина=${event.reason}`);
   } else {
     // например, сервер убил процесс или сеть недоступна
     // обычно в этом случае event.code 1006
     alert('[close] Соединение прервано');
   }
 };

 socket.onerror = function(error) {
  alert(`[error]`);
 };
Также существует протокол wss://, использующий шифрование. Это как HTTPS для веб-сокетов. 👉 @seniorFront