/ / Communication interservlet - java, servlets, websocket

Communication Interservlet - Java, Servlets, Websocket

J'ai un servlet Websocket et un servlet Rest. Je souhaite informer le servlet Websocket des modifications afin d'écrire ces "événements" via Websocket sur un serveur.

Je n'ai pu trouver que l'approche forward () et include (). Mais ils me semblent pouvoir uniquement transmettre onGet, onPost, etc.

est-ce que quelque chose me manque?

Réponses:

1 pour la réponse № 1

Effectivement, forward() et include() sont destinés à être utilisés lors du traitement d'une demande. Donc, ils pourraient ne pas être la meilleure option compte tenu de ce que vous voulez réaliser.

Ce que vous pourriez faire est de créer un troisième composant, appelons-le EventManager pour le moment, et que le signal de la servlet Rest change en EventManager. Le Websocket, en revanche, pourrait être notifié par le EventManager ces nouvelles données sont disponibles et ensuite obtenir ces nouvelles données afin de les réécrire sur le client.

Dans cette approche, il est essentiel que les servlets Rest et Websocket partagent la même instance du serveur. EventManager. Vous pouvez y parvenir en marquant la EventManager en tant que singleton EJB en ajoutant le @Singleton annotation, et l'injecter à la fois au servlet Rest et au servlet websocket.