Удобный способ закрытия соединений websocket для node.js - PullRequest
0 голосов
/ 22 мая 2018

У меня есть приложение, которое раскручивает соединения веб-сокетов на случайных портах после проверки, чтобы убедиться, что порт еще не назначен.Каждое соединение имеет лицевую карту с ползунком для создания / уничтожения TCP-соединения на основе номера порта, который им назначен (и сохранен).Это просто раскрутить сервер для каждого сокета с предопределенной обработкой событий, с которой он идет, но я не уверен в том, как позволить пользователю разорвать соединение tcp.Как бы это выглядело, если бы пользователь из внешнего интерфейса сдвинул тумблер в положение «Выключено», и я бы взял этот идентификатор объекта, запросил номер его порта и затем должен был бы закрыть соединение с этим портом.Я надеюсь, что есть способ с узлом, чтобы иметь возможность запрашивать его активные серверы и действовать на них как угодно, но я не нашел ни одной статьи, предлагающей такой способ.

1 Ответ

0 голосов
/ 22 мая 2018

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

Нет такой вещи, встроенной в node.js.

Если вы хотите иметь возможность работать на всех запущенных вами серверах webSocket, то вы можете просто добавить их в массив при запуске.

const serverArray = [];


// code elsewhere that starts a server
let server = new WebSocketServer(someRandomPort);
// push an object into an array that has the port and server
serverArray.push({server, port: someRandomPort});

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


Но этозвучит для меня, как будто вам не нужны несколько серверов webSocket.Несколько клиентов (с любой необходимой безопасностью) могут использовать один и тот же сервер.Это обычный дизайн клиент / сервер (несколько клиентов разговаривают на одном сервере).

...