Для реализации рассылки n-ым подключенным клиентам в Node.js можно использовать модуль Socket.IO.
Socket.IO - это библиотека, которая предоставляет веб-сокеты и полнофункциональные двусторонние связи в реальном времени между клиентом и сервером. Она обладает множеством возможностей, включая поддержку нескольких подключений, обмен сообщениями между клиентами и сервером, а также рассылку сообщений определенным подключенным клиентам.
Для начала установим модуль Socket.IO. Откройте терминал и введите следующую команду:
npm install socket.io
Затем импортируем модуль Socket.IO в наш файл приложения:
const io = require('socket.io')();
Создадим экземпляр сервера Socket.IO:
const server = require('http').createServer(); const io = require('socket.io')(server);
Теперь нам нужно настроить обработчики событий для подключений и сообщений:
io.on('connection', (socket) => { // Обработчик события подключения нового клиента console.log('Новый клиент подключен'); // Обработчик события получения сообщения от клиента socket.on('message', (data) => { console.log('Получено сообщение:', data); // Рассылка сообщения всем подключенным клиентам io.emit('message', data); }); // Обработчик события отключения клиента socket.on('disconnect', () => { console.log('Клиент отключен'); }); });
Теперь сервер ожидает новых подключений и будет рассылать сообщения всем клиентам при получении сообщения от любого из них.
В клиентской части кода требуется подключиться к серверу Socket.IO и отправлять сообщения:
const socket = io(); // Отправка сообщения на сервер socket.emit('message', 'Привет, сервер!'); // Обработчик события получения сообщения от сервера socket.on('message', (data) => { console.log('Получено сообщение от сервера:', data); });
Таким образом, при отправке сообщения от любого клиента, оно будет рассылаться всем подключенным клиентам. Вы можете расширить этот пример и добавить свою логику обработки сообщений и других событий с использованием Socket.IO.