Ver Mensaje Individual
  #12  
Antiguo 14-08-2013
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 21
gatosoft Va camino a la fama
Cita:
Empezado por JULIPO Ver Mensaje
Gracias por tu respuesta si es claro que el cliente puede tener un numero de ID pero como saber cuando un cliente se desconecta en el servidor tendría que preguntarle a todos quien se desconecto y el que no responda ese es pero cuando se tienen muchos cliente el proceso se hace engorroso.

desde el servidor tengo el evento ondisconnect en el componente DSTCPServerTransport1 pero no puedo ubicar quien fue el que se desconecto.

aclaro un poco la idea realizo un proceso de conexión y autenticacion en el servidor de datasnap, comparo los datos de usuario y password con una tabla en Mysql cuando logro la conexión grabo en la tabla desde el cliente el numero de id para que el cliente que se encarga de enviar la información tanto global como a cada uno de los clientes tenga identificado el numero de la conexión, hasta aquí bien, pero cuando me desconecto o pierdo la conexión no puedo identificar que cliente se desconecta,(ademas debo tener la posibilidad de desconectar a algún cliente desde el servidor ).

Espero se vea claro el problema para que me ayuden con la solución.
No tienes que saber cuando se desconecta..!!!, precisamente para eso es el CallBack y los Channels que definas...

En tema de Callbakcs el servidor lo hace todo, si revisas elvideo, la programación en el servidor fue nula, (un par de configuraciones)...

Ahora tenemos:
1) tus clientes se registran.
2) Otro cliente (El monitor de equipos) envía un mensaje de alerta...
3) el servidor recoge el mensaje y hace Broadcast o difusion a todos los clientes conectados... (tu no tienes que llevar el control de los clientes, ni programar nada en el servidor para que esto suceda)
4) si un cliente se desconecta, no pasa nada ... supongo que internamente le informara al servidor que se va y listo...

Ahora si por algún motivo necesitas "saber quien está conectado", para actualizar tus estados en la BD, pues puedes utilizar el mismo sistema de Callbacks para enviar un mensaje ping... es más, cada vez que envíes una alerta a tus clientes puedes solicitar una confirmación de leido mediante una respuesta al callback...

un saludo,
Responder Con Cita