#javascript #node.js #websocket
Вопрос:
У меня есть серверная часть NodeJS с Express и WS, и это простое приложение для чата, похожее на мессенджер. Вы входите в систему, а затем общаетесь в чате. Но я хочу добавить к этому функцию. Если пользователь уже зарегистрирован и АКТИВЕН (соединение с сокетом существует, не нарушено) Я хочу, чтобы это activeStatus : active
было в базе данных. Так что, если он попытается войти в систему из другого браузера , если у него есть active
статус activeStatus, он не сможет подключиться.
Как это достижимо? Я не могу понять, как я должен связать соединение websocket с определенным идентификатором в базе данных, и когда соединение включено, обновите базу данных, а когда соединение отключится, обновите ее до этого идентификатора снова.
Ответ №1:
Просто установите уникальный параметр WebSocket
, например, в wss.on('connection',...)
и используйте его позже для идентификации пользователя. Кроме того, если вы не можете связать подключение к websocket с указанным пользователем, как работает ваша аутентификация? Похоже, что любой может подключиться к вашему серверу, если он не может различать пользователей.
Комментарии:
1. Как именно я бы сделал это в общей картине? Извините, я новичок в WS. Кроме того, аутентификация основана на электронной почте и пропуске.