Estou querendo reter o estado se o usuário está online ou não. Mas toda vida que atualizo a página, o estado se perde depois que uso o emit e recebo a mensagem. Alguém sabe como fazer? Sem salvar isso no banco de dados.
Estou querendo reter o estado se o usuário está online ou não. Mas toda vida que atualizo a página, o estado se perde depois que uso o emit e recebo a mensagem. Alguém sabe como fazer? Sem salvar isso no banco de dados.
Acho que uma solução simples é guardar a informação no cookie.. isso sempre vai ser enviado, em cada uma das requisições :). Você pode receber no servidor e tratar da forma que quiser.
Mas e no caso de eu ter vários usuários, por exemplo? Gostaria de mostrar a lista de todos os usuários conectados sem precisar salvar e deletar no banco os usuários que estão se conectando e desconectando. Você tem alguma ideia?
Aí não tem muito jeito.. vc precisa ter uma variável com escopo de aplicação. Pode criar um vetor, deixar ele disponível no express, como fazemos com o objeto do socket.io e sempre dar push ou remove desse array.
Eu pelo menos não vejo outro jeito.. já que vc falou que usar o banco ta fora de cogitação :).
Valeu, Alberto. :)
Alberto, tentei fazer o seguinte:
var stateOfChannel = {};
module.exports.stateOfChannel = stateOfChannel;
A partir daí, eu teria um dicionário num módulo separado. Depois dou um require em outros arquivos pra dar o push e o delete. Mas o dicionário sempre está vazio em outros arquivos. Saberia explicar o pq?
Não acho que é uma boa tática... vc ta confiando que o require vai retornar sempre o mesmo objeto... Acho que o melhor é vc dar esse require no inicio da aplicação e deixar o objeto disponível no contexto do express.