Рубрики
Без рубрики

Использование веб-сайтов с Node.js

Веб-сайты являются альтернативой HTTP-связи в веб-приложениях. Они предлагают долговечный двунаправленный канал связи между клиентом и сервером.

Веб-сайты являются альтернативой HTTP-связи в веб-приложениях.

Они предлагают долговечный двунаправленный канал связи между клиентом и сервером.

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

Поддержка браузеров для веб-сайтов

Веб-сайты поддерживаются всеми современными браузерами.

Чем веб-сайты отличаются от HTTP

HTTP – это совсем другой протокол, а также другой способ общения.

HTTP – это протокол запроса/ответа: сервер возвращает некоторые данные, когда клиент запрашивает их.

С веб-сайтами:

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

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

HTTP отлично подходит для случайного обмена данными и взаимодействия, инициированного клиентом.

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

Защищенные веб-сайты

Всегда используйте безопасный, зашифрованный протокол для Websocket, wss:// .

ws:// относится к небезопасной версии WebSockets ( http:// WebSockets), и ее следует избегать по очевидным причинам.

Создайте новое подключение к Websocket

const url = 'wss://myserver.com/something'
const connection = new WebSocket(url)

соединение является WebSocket объект.

Когда соединение успешно установлено, запускается событие открыть .

Прослушайте его, назначив функцию обратного вызова свойству onopen объекта подключение :

connection.onopen = () => {
  //...
}

При возникновении какой-либо ошибки запускается обратный вызов функции onerror :

connection.onerror = error => {
  console.log(`WebSocket error: ${error}`)
}

Отправка данных на сервер с помощью WebSockets

Как только соединение открыто, вы можете отправлять данные на сервер.

Вы можете сделать это удобно внутри функции onopen обратного вызова:

connection.onopen = () => {
  connection.send('hey')
}

Получение данных с сервера с помощью WebSockets

Прослушивание с помощью функции обратного вызова на на сообщение , которое вызывается при получении сообщения события:

connection.onmessage = e => {
  console.log(e.data)
}

Внедрить сервер WebSockets в Node.js

ws является популярной библиотекой WebSockets для Node.js .

Мы будем использовать его для создания сервера WebSockets. Он также может быть использован для реализации клиента и использования веб-сайтов для связи между двумя внутренними службами.

Легко установите его с помощью

yarn init
yarn add ws

Кода, который вам нужно написать, очень мало:

const WebSocket = require('ws')

const wss = new WebSocket.Server({ port: 8080 })

wss.on('connection', ws => {
  ws.on('message', message => {
    console.log(`Received message => ${message}`)
  })
  ws.send('ho!')
})

Этот код создает новый сервер на порту 8080 (порт по умолчанию для WebSockets) и добавляет функцию обратного вызова при установлении соединения, отправляя ho! клиенту и протоколирование получаемых им сообщений.

Смотрите живой пример на глюке

Вот живой пример сервера WebSockets: https://glitch.com/edit/#!/флавио-веб-сайты-сервер-пример

Вот клиент WebSockets, который взаимодействует с сервером: https://glitch.com/edit/#!/флавио-веб-сайты-клиент-пример

Оригинал: “https://flaviocopes.com/node-websockets/”