Websocket. Раздельное подключение
Есть админка с бэком на ноде. Суть: пользователь авторизуется. Вводит ссылку на сайт. Нажимает старт -> запрос на сервер -> запускается селениум -> между селениумом и клиентом образуется соединение по вебсокетам -> селениум отсылает данные на фронт.
Суть вопроса: зашёл с 2 разных аккаунтов. Ввёл ссылку на 1 из них и запустил. Вебсокеты начали слать данные 2 аккаунтам. Я же хочу, чтобы они слали только инициатору запроса. Что для этого надо?
На сервере стоит обработчик сокетов на порте 8080. Соответственно клиенту я тоже указываю этот порт. Надо как-то динамически его изменять для каждого из пользователй?
Ответы (1 шт):
Автор решения: Дмытрык
Хранить ли массив идентификаторов онлайн-юзеров в БД - нет. Кроме идентификатора, Вам же еще необходимо хранить данные самого подключения, чтобы иметь возможность отправить сообщение пользователю
→ Ссылка
const userOnline = {};
wsServer.on('connection', (ws, req) => {
const id = Math.random();
userOnline[id] = ws;
setInterval(() => {
sendMessageToUser(id)
}, 2000)
})
function sendMessageToUser(id) {
userOnline[id].send('message', "I'am here")
}