Показать сообщение отдельно
  #1 (permalink)  
Старый 02.03.2023, 15:08
Аспирант
Отправить личное сообщение для win32s Посмотреть профиль Найти все сообщения от win32s
 
Регистрация: 28.09.2019
Сообщений: 38

WS-server на два порта, как правильно?
Есть такая задача - программа на компьютере собирает и передает некоторые данные на сервер, а там они выводятся пользователю в браузер. Пробую сделать веб-сокет сервер на ноде, но поскольку в ней нет опыта, вышло что-то такое

var WebSocketServer = new require('ws');
const WebSocket = require('ws');
var clients = {};

var wss_soft = new WebSocketServer.Server({port: 7777});
var wss_adm = new WebSocketServer.Server({port: 6666});

var admin_sock;

wss_adm.on('connection', function(ws) {
  console.log("Connection new admin !");
  admin_sock = ws;

  ws.on('message', function(message) {
    console.log('Adminka received message ');
  });

  ws.on('close', function() {
    console.log('Connection close admin');
  });
});

wss_soft.on('connection', function(ws) {
  var id = Math.random();
  var fid = 0;
  clients[id] = ws;
  console.log("Connection new " + id);

  ws.on('message', function(message) 
  {
    //console.log('Received message ' + message);
	      // Отправляем сообщение в wss_adm
      wss_adm.clients.forEach(function each(client) {
        if (client.readyState === WebSocket.OPEN) 
		{
          client.send(message);
        }
      });
  });

  ws.on('close', function() {
    console.log('Connection close ' + id);
    delete clients[id];
  });
});


Суть, что программа стучит в один порт , а тот принимает сообщение и отправляет в другой (где уже читает браузерный javascript, т.е. админ панель). Подозреваю, что это не особо правильно.

И где можно взять документацию по этому модулю WS ? Методы, функции ?

Последний раз редактировалось win32s, 02.03.2023 в 15:34. Причина: добавил
Ответить с цитированием