Je suis un peu nouveau pour le printemps-démarrage et au printemps en général. Je me suis jeté dans un projet et mon premier "exercice" afin d'obtenir mes pieds dans l'eau est de créer un simple flux de nouvelles sur la fin qui sera automatiquement mise à jour par le biais de websocket de notifications push.
Les technologies concernées sont les suivantes:
- Angulaire pour le général avant la fin de l'application
- SockJS pour la création d'une communication websocket
- Stomp sur webosocket pour la réception de messages à partir d'un message broker
- Springboot Websockets
- Stomp Message Broker (java cadre)
Ce que je veux réaliser sur la face avant est:
- Créer une connexion websocket lorsque la vue est chargé
- Créer s stomp fournisseur de l'aide que websocket
- Avoir mon client m'y abonner
- Catch serveur poussé des messages et de mettre à jour l'angle de vue
Aussi loin que le côté serveur de code:
- Configurer le websocket trucs et gérer la connexion
- Le serveur de pousser des messages toutes les X temps (par le biais d'un exécuteur testamentaire ou l'
@Scheduled
?).
Je pense que j'ai réussi tout ce que jusqu'à présent, sauf la dernière partie du code côté serveur. L'exemple, j'ai été suivant utilise le websocket en mode duplex intégral et lorsqu'un client envoie quelque chose, alors le serveur répond immédiatement à la file d'attente de messages et tous souscrit mise à jour des clients. Mais ce que je veux, c'est pour le serveur lui-même envoyer quelque chose de plus Stomp
SANS attente pour le client de présenter la demande.
Au début, j'ai créé un ressort @Controller
et ajouté une méthode pour il avec @SendTo("/my/subscribed/path")
d'annotation. Cependant, je n'ai aucune idée de comment le déclencher. Aussi j'ai essayé d'ajouter @Scheduled
mais cette annotation ne fonctionne que sur les méthodes avec void
type de retour (et je suis de retour d'un NewsMessage objet).
Essentiellement, ce que j'ai besoin est d'avoir le client initialiser une connexion websocket, et après que le serveur soit de commencer à pousser des messages à travers elle à un intervalle défini (ou chaque fois qu'un événement est déclenché, il n'est pas question pour l'instant). Aussi, chaque nouveau client doit d'écouter la même file d'attente de messages et de recevoir les mêmes messages.