Cita:
Iniciado por utan hola,
El evento "verifico_permisos" debe ser reinitializado cuando tu usuario se desconecta por alguna razón..
En el cliente si el usuario esta en la aplicación y este se desconecta, no manda el socket.emit("verifico_permisos"); de nuevo, lo cual en el server este solo no crea esta nueva conexion en tu users..
Entonces, cuando tu usuario entra a tu aplicación esta manda "verifico_permisos" y puede usar tu aplicación pero cuando por alguna razón su conneccion se desconecta este estando en el browser no hay ningun evento que detecte la desconexion y que mande "verifico_permisos" otra ves..
propongo este ejemplo..
server:
Código Javascript
:
Ver original// server
io.sockets.on('connection' , function( socket ){
socket.on('verifico_permisos', function ( data ) {
// hacemos tu login
});
});
cliente
Código Javascript
:
Ver original//cliente
client.on('connect', function(){
// mandas tus credenciales al conectarte
client.emit( 'verifico_permisos' , data );
});
client.on('disconnect', function(){
/** ok, el cliente se desconecto, pero como no esta recargando la pagina
* debemos emitir "verifico_permisos" nuevamente con las credenciale, ya que
* la pagina del cliente ya esta cargada y ya emitio las credenciales.
*/
client.emit( 'verifico_permisos' , data );
});
Otra manera (no mi option) seria que forzarar un refresh a tu pagina cuando tu cliente detecte el evento 'disconnect'...
espero te aya ayudado.
Buenisimo Utan!!
ahora pregunta:
¿No seria conveniente utilizar
client.on('disconnect' para mostrar alguna adevertencia al usuario solamente... en lugar de hacer
client.emit( 'verifico_permisos' porque si el usuario continua deconectado como que no tendria mucho sentido...
Por otro lado yo no tenia:
Código HTML:
client.on('connect', function(){
// mandas tus credenciales al conectarte
client.emit( 'verifico_permisos' , data );
});
yo tenia solo:
Código HTML:
client.emit( 'verifico_permisos' , data );
creo que al agregarle el client.on ya reconectaria automaticamente cuando vuelva la conexion sin necesidad de hacerlo desde el disconnect. Decime si esta correcta mi logica... Mil gracias por tu ayuda utan!!!