Sim, o pooling atualiza sucessivamente, mas o ideal é usar o protocolo WS mesmo.
O heartbeat é bem como o nome diz, é como se fosse uma batida de coração que independente do usuário estar ativo (mexendo na aplicação) o socket continua vivo.
Bom, esse definitivamente é um approach, esse teu do array, só que: Eu ainda prefiro o Redis, por ser independente, ele nem é pesado.
Exato, como se fosse assim mesmo como você mencionou na sua ultima resposta!
Você linka o socket id e o user id dessa maneira via o Redis, ou via seu array.
Essa resposta foi meio corrida. Boa sorte, a melhor maneira para fazer funcionar é começando hehehehe, e pelo jeito você já começou! Tmj Owner, qualquer coisa manda mensagem +48 996351055
Para que eu possa te ajudar mais e talvez te mandar aquele meu projeto (tenho que ver se acho, faz tempo e na época nem sabia do tal do github)