Как отправить сообщение на каждое сокетное соединение (с сервера) - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь создать простое приложение для чата, просто для решения задач и еще больше узнать javascript.Для этого я использую встроенный пакет net для моего сокет-сервера и клиента.

Чтобы сделать это просто, у меня есть клиент, который отправляет объект Stringify, когда он подключается к серверу, и я хочумой сервер, чтобы отправить сообщение каждому клиенту, подключенному в настоящее время.

Это структура моего сообщения:

socket.write(JSON.stringify({
       type: message type,
       data: message data,
       author: message author
}))

Извините за мой плохой английский и спасибо всем, кто это прочитал.

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете сделать это так.Это взято со страницы ws github https://github.com/websockets/ws Есть много способов добиться этого, но в Node это, вероятно, лучшее решение.

const WebSocket = require('ws');

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

// Broadcast to all.
wss.broadcast = function broadcast(data) {
wss.clients.forEach(function each(client) {
 if (client.readyState === WebSocket.OPEN) {
     client.send(data);
    }
  });
 };

 wss.on('connection', function connection(ws) {
 ws.on('message', function incoming(data) {
 // Broadcast to everyone else.
 wss.clients.forEach(function each(client) {
  if (client !== ws && client.readyState === WebSocket.OPEN) {
    client.send(data);
        }
      });
    });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...