2011-02-04 9 views
0

Je suis un C/C++ application programmeur expérimenté, mais relativement nouveau à la programmation Web, REST, etc.services RESTful - Questions

Il y a un serveur central qui surveille divers autres machines clientes. Le serveur expose certaines API par lesquelles les machines client envoient périodiquement des mises à jour d'état & au serveur. Bien que ce soit le client qui contacte toujours le serveur, le serveur envoie également des commandes au client via une réponse aux méthodes POST & les méthodes client agissent sur lui. Maintenant, si le serveur lui-même veut envoyer un message au client, est-ce possible? Les clients ne se connectent qu'une fois par heure, mais au milieu, le serveur doit demander au client de le contacter. Est-ce possible? du tout? Si ce n'est pas le cas, c'est le seul moyen d'avoir des données hors bande - c'est-à-dire que les clients exécutent également un processus distinct d'écoute sur un port distinct. À tout moment, le serveur veut contacter le client, le serveur envoie un message au client particulier sur ce port demandant au client de contacter le serveur?

Répondre

0

Il existe deux façons de le faire, en fonction de vos situations exactes. Si votre réseau autorise les connexions du serveur aux clients, vous pouvez exposer un serveur web minimal ou une interface de type RPC sur vos clients et vous connecter à celui-ci depuis votre serveur. Si ce n'est pas possible, par exemple parce que vos clients sont derrière des pare-feux ou des passerelles NAT, les clients devront interroger le serveur pour voir s'il y a des commandes en attente.