Tengo un requisito estricto para permitir que solo un usuario que haya iniciado sesión abra mi aplicación web en una pestaña. He notado que las aplicaciones web de WhatsApp y Google Messenger han implementado esto. Por ejemplo, intentar abrir esas aplicaciones en más de una pestaña (ya sea en el mismo navegador, en un navegador diferente o incluso en un dispositivo diferente) genera estas advertencias:
Alguien sabe como se hace esto? Debe haber algún tipo de sincronización entre el servidor y el cliente para garantizar que solo una pestaña esté abierta. Pero esto requeriría un identificador de pestaña único, que puede ser bastante complicado de construir de manera confiable . ¿Alguien sabe cómo lo están haciendo WhatsApp y Google Messenger? Su técnica parece funcionar perfectamente.
No sé exactamente cómo se hace esto en WhatsApp y Google Messenger, pero si trabaja con WebSockets (su publicación tiene la etiqueta "websocket", así que supongo que la tiene) cada pestaña tiene su única conexión al servidor, y si sus usuarios necesitan iniciar sesión, puede verificar si el usuario ya tiene una conexión weboscket abierta a su servidor.