Nodejs Websockets Активное состояние пользователя с MongoDB

#javascript #node.js #websocket

Вопрос:

У меня есть серверная часть NodeJS с Express и WS, и это простое приложение для чата, похожее на мессенджер. Вы входите в систему, а затем общаетесь в чате. Но я хочу добавить к этому функцию. Если пользователь уже зарегистрирован и АКТИВЕН (соединение с сокетом существует, не нарушено) Я хочу, чтобы это activeStatus : active было в базе данных. Так что, если он попытается войти в систему из другого браузера , если у него есть active статус activeStatus, он не сможет подключиться.

Как это достижимо? Я не могу понять, как я должен связать соединение websocket с определенным идентификатором в базе данных, и когда соединение включено, обновите базу данных, а когда соединение отключится, обновите ее до этого идентификатора снова.

Ответ №1:

Просто установите уникальный параметр WebSocket , например, в wss.on('connection',...) и используйте его позже для идентификации пользователя. Кроме того, если вы не можете связать подключение к websocket с указанным пользователем, как работает ваша аутентификация? Похоже, что любой может подключиться к вашему серверу, если он не может различать пользователей.

Комментарии:

1. Как именно я бы сделал это в общей картине? Извините, я новичок в WS. Кроме того, аутентификация основана на электронной почте и пропуске.