Bonjour à tous,
Je travaille actuellement sur une appli en architecture 3 tiers en utilisant les composants de la suite INDY IdTCPClient et IdTCPServer.
Description succincte : un client a la possibilité de paramètrer un job. Ce job est transmis sous forme de message au serveur, qui va alors confirmer la bonne réception du job mais ne va pas le lancer de suite (gestion de files d'attente et de priorités de jobs).
Donc le client a soumis un job, il peut accéder à d'autres écrans pour faire d'autres choses (affichage de stats, graphique,..).
Coté serveur, une fois que le job sera lancé et terminé, je souhaite envoyer un message au client. A ce niveau, pas de problèmes.
C'est coté client que j'ai des soucis, comment INTERCEPTER le message ?
Je rappelle que je peux intercepter des messages quand le client envoi un message au serveur et que celui-ci lui répond immédiatement.
Là mon problème est typiquement de CATCHER le message provenant du serveur sans que le client est envoyé de message au serveur ?
Mon objectif est de rafraichir des infos coté client, à la demande du serveur
Hier, j'ai planché toute la journée, et une solution super bourrin que j'ai mis en place coté client est une procédure qui se lance dans un THREAD toutes les secondes pour aller LIRE ce que je reçois du serveur.
résultats : mon appli coté cliente est super ralenti, et certains messages n'ont pas été interceptés.
De plus, cette solution n'est pas satisfaisante. Car je peux très bien ne pas recevoir de messages du serveur pendant toute une journée, et pour une autre journée, en recevoir 10 (enfin c'est un exemple)
Donc, c'est vraiment le message envoyé par le serveur qui doit déclencher le rafraichissement coté client.
J'ai vu dans la doc hier qu'il existait la propriété INTERCEPT pour le composant IdTCPClient, mais à vrai dire, je n'ai pas réussi à comprendre son fonctionnement.
Kk'un a t-il une idée sur le problème ?
Au passage, un GRAND BRAVO à REISUBAR pour ses exemples dans la FAQ sur INDY et les sockets , super boulot !!!
![]()
@
Partager