Краткое введение в WebSockets с Node.js


Введение

WebSockets позволяют отправлять и получать данные по сети без использования традиционного протокола HTTP. Используя WebSockets, вы можете создать приложение реального времени. Например, вы можете отправлять сообщения другим пользователям без необходимости обновлять страницу, чтобы увидеть новые сообщения.

Мы будем использовать библиотеку ws. Это модуль Node.js, который позволяет создавать серверы и клиенты WebSockets.

Предварительные условия

Прежде чем начать, убедитесь, что у вас установлен Node.js:

  • Скачать Node.js

Установите

Для установки библиотеки ws необходимо выполнить следующую команду:

npm install ws
Войти в полноэкранный режим Выйти из полноэкранного режима

Далее создайте новый файл server.js и откройте его в вашем любимом текстовом редакторе.

Создание сервера WebSocket

В файле server.js создайте следующий код:

const WebSocket = require('ws')

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

wss.on('connection', function connection(ws) {
    console.log('Client connected')
    const interval = setInterval(() => {
        ws.send('hello world')
    }, 1000)
    ws.on("close", () => {
        console.log("Client disconnected");
    });
    ws.onerror = function () {
        console.log("Some Error occurred");
    }
});
Вход в полноэкранный режим Выйти из полноэкранного режима

Описание кода:

Таким образом мы смоделируем потоковое приложение, в котором сервер отправляет сообщение клиенту каждую секунду.

Затем, чтобы запустить сервер, выполните следующую команду:

node server.js
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем оставьте сервер запущенным и откройте новое окно терминала, в котором мы подготовим наш клиент.

Создание клиента WebSocket

В новый файл под названием client.js добавьте следующий код:

const WebSocket = require('ws')
const ws = new WebSocket('ws://localhost:8081')
ws.on('open', function open() {
    ws.on('message', function message(data) {
      console.log(`${data}`);
    });
});
Войти в полноэкранный режим Выйти из полноэкранного режима

Приведенный выше код создает новый WebSocket-клиент и подключается к серверу через порт 8081.

При получении сообщения от сервера происходит событие message.

Чтобы протестировать клиента, выполните следующую команду:

node client.js
Войти в полноэкранный режим Выйти из полноэкранного режима

Вы должны увидеть следующий результат:

hello world
hello world
hello world
...
Вход в полноэкранный режим Выход из полноэкранного режима

Пример:

Заключение

Это простой пример использования WebSockets в Node.js.

Если вы хотите узнать больше о WebSockets, ознакомьтесь с официальной документацией.

Если вы хотите увидеть, как WebSockets работает с Laravel, ознакомьтесь со следующим руководством:

Laravel WebSockets

Для дальнейшего чтения я также рекомендую ознакомиться со следующим учебником о разнице между SSE и WebSockets:

SSE vs WebSockets

Оцените статью
devanswers.ru
Добавить комментарий