![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
En el articulo estan todas las respuestas, y para que lo veas mejor remitete a los videos (no puedo referenciarlos por limitaciones con youtube), buscalos en la red como "Delphi Labs"
Para saber los clientes que están conectados, puedes utilizar el TDSClientCallbackChannelManager.RegisterCallback, en el que cada cliente reporta al servidor un ID que lo identifica. Con respecto a generar el mensaje desde el servidor, No estoy seguro, si puedes "embeber" un cliente en el servidor que implemente el TDSClientCallbackChannelManager. No estoy seguro si permita el Register (puedes probar y nos cuentas). Pero podrías hacer lo siguiente: Que tu servidor DataSanap sea solo una capa de comunicación (recibe mensajes y envía a los clientes), y puedes implementar un servicio separado que monitoree los eventos de las máquinas y cuando se dispare un evento, envíe el mensaje al servidor (de comunicación), y éste lo replcia a los clientes conectados... solo una idea, |
#2
|
||||
|
||||
De antemano gracias por tu ayuda
Cita:
Perdona si estoy diciendo incoherencias pero la verdad no entiendo.
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas Goethe |
#3
|
||||
|
||||
En el articulo de Delphi Labs, muestra cómo se utiliza el componente TDSClientCallbackChannelManager.
Éste componente se crea en el cliente y utiliza el método register para reportar al servidor un ID... El TDSClientCallbackChannelManager se conecta al servidor, por lo cual no se si pueda declarase dentro del mismo servidor. Como solución te proponia: 1) implementar un DataSnapServer encargado de las comunicaciones entre aplicaciones 2) Tienes una applicación o servicio que monitorea unas máquinas (Ésta aplicación es un cliente del DataSnapServer y le envia las alertas que debe replicar, desde aqui se genera el callback) 3) Tienes unos Clientes (ipads, Pcs) a los cuales debes enviar notificaciones. Si revisas los videos se verá mejor, pues se explica paso a paso... Un saludo, |
#4
|
||||
|
||||
si el problema es a la desconexion
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 basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas Goethe |
#5
|
||||
|
||||
Cita:
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, |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Enviar mensajes Whatsapp por c++ builder o delphi | vivamotos | C++ Builder | 8 | 10-10-2011 21:03:20 |
Hacer animación en delphi | jask2007 | OOP | 1 | 03-04-2011 07:19:44 |
hacer programa vpn en delphi | kokele | Redes | 5 | 27-12-2010 13:30:53 |
Hacer que Delphi 2010 luzca como Delphi 7 | jorosmtz | La Taberna | 0 | 11-04-2010 22:45:36 |
Hacer juegos con delphi | astut | Varios | 4 | 18-09-2006 11:37:57 |
![]() |
|