Tengo un backend de NodeJS con Express y WS, y es una aplicación de chat similar a un mensajero simple. Inicias sesión, luego chateas. Pero quiero agregar una característica encima. Si un usuario ya está conectado y ACTIVO (existe una conexión de socket, no está rota), quiero que sea activeStatus : active en la base de datos. De modo que si intenta iniciar sesión desde un navegador diferente, si su estado activo está active , no podrá conectarse.
¿Cómo se puede lograr esto? No puedo entender cómo se supone que debo vincular una conexión websocket a una identificación específica en la base de datos, y cuando la conexión está activada, actualice la base de datos y cuando la conexión se caiga, actualícela nuevamente a esa identificación.
Simplemente configure un parámetro único para la instancia de WebSocket en wss.on('connection',...) y utilícelo más tarde para identificar al usuario. Además, si no puede vincular la conexión websocket a un usuario específico, ¿cómo funciona su autenticación? Parece que cualquiera puede conectarse a su servidor, si no puede diferenciar entre usuarios.