J'ai un client qui commence un processus long-exécutant sur le serveur. À intervalles réguliers, j'aimerais montrer à l'utilisateur ce qui se passe à l'arrière-plan. L'approche la plus simple consiste à interroger le serveur, mais je me demande s'il n'y avait pas de moyen de mettre en œuvre le modèle d'observateur pour cela. Malheureusement, j'utilise RMI pour parler au serveur et je crains que je doive transformer mon client dans un serveur RMI pour cela. P>
Y a-t-il une autre façon qui me manque? p>
4 Réponses :
Je ne pense pas que tu ne manques rien. Les deux seules manières sont d'appeler périodiquement le serveur et de vérifier le statut (interrogation) ou d'enregistrer un rappel que le serveur appelle périodiquement (votre client doit exposer une méthode). IMO, le sondage est une manière parfaitement raisonnable de gérer cela. P>
RMI peut en général soutenir la communication à deux sens. (Et oui, RMI est un pita pour mettre en place et faire autre chose avec.) P>
Cependant, le transport HTTP qui fonctionne sur un script CGI (!) Ne le supporte pas. P>
Est-ce toujours vrai lorsque je démarre le serveur dans mon code avec locaeegistry.cremeweatergistry () (au lieu d'utiliser l'exécutable fourni par Sun)?
+1 pour "(et oui, RMI est un pita pour mettre en place et faire autre chose avec.)" S'il vous plaît dites à mon école que.
Consolidation de toutes les réponses ici, j'ai mis en œuvre 2 voies RMI entre client et serveur avec serveur exposant son talon à l'aide de Registry
Le code suivant donne une meilleure idée p>
Base de votre code, la classe Rmiclient peut être utilisée sur le serveur lorsque la classe RMISERVER met en œuvre la méthode Addobserver. Est-ce que la classe Rmiclient définie dans le client et le serveur?
J'essaie de faire ça aussi et je suis venu à la même conclusion ... RMi Kinda suce! :)
sandny.com/2017/05/18/java-rmi-observer -slider