Afin d'organiser le flux de communication TCP avec Spring Integration, j'ai dessiné un diagramme de séquence côté client, bien que ce soit compliqué.

On suppose que ʻautoStartUp est activé, c'est-à-dire que ʻOutbound Gateway et ConnectionFactory sont démarrés au démarrage de l'application. Cela a rendu le point de départ étrange: confondu:.
appelle la méthode qui définit ConnectionFactory`.ConnectionFactory enregistre ʻOutboundGateway dans Sender / Listener en tant qu'émetteur / récepteur (ʻOutboundGateway implémente TcpSender / TcpListener). TcpSender est l'interface pour établir une connexion depuis la fabrique de connexions pour envoyer un message, et TcpListener est l'interface pour recevoir le message reçu de la connexion.Message avec MessagingTemplate et passez-le à ʻOutbound Gateway via ʻAdvisedRequestHandler. appelle ConnectionFactory` pour établir une connexion.ConnectionFactory appelle buildNewConnection () ʻof TcpConnection pour établir une nouvelle connexion. Lors du partage d'une connexion (single-use = false`), vérifiez d'abord s'il existe déjà une connexion utilisable. Publiez un événement lorsqu'une nouvelle connexion est établie. contient TcpConnection` dans la variable.send of TcpConnection et sérialisez le message avec Serializer et envoyez-le à l'hôte.Appelé entre 6 et 7 si ʻInterceptor` est défini.
TcpConnection amène MessageMapper à mapper l'objet reçu à l'objet message.MessageMapper modifie l'en-tête et renvoie un message à TcpConnection.TcpConnection transmet un message à ʻOutbound Gateway`. vérifie si le message reçu est lié à ce qui a été envoyé et le transmet à ʻAsync Repry. fasse le compte à rebours ou expire et renvoie le message à la ʻOutbound Gateway. Les processus de réception 1 à 5 sont exécutés de manière asynchrone.single-use = true), fermez la connexion. Dans ce cas, un événement est émis. renvoie le résultat dans Message Gateway`.Message Gateway renvoie le résultat au client.Si ʻInterceptor est défini, il sera appelé en 3 avant de passer le message à ʻOutbound Gateway.
Remarques: Bien que omis dans la figure, il y a «Channel» et divers points de terminaison entre «Message Gateway» et «Outbound Gateway».
Ce sera une communication TCP utilisant Spring Integration en la matière, et dans le but d'organiser les résultats de l'enquête Je posté. Il n'y a pas beaucoup de documents japonais, donc j'espère que cela aidera ceux qui s'en inquiètent: sueur:. (Au fait, le côté serveur ne prévoit pas d'utiliser Spring Integration dans ce projet, donc je le posterai probablement) Non.
La figure ci-dessus a été créée à l'aide d'un service appelé WebSequenceDiagrams. Vous pouvez facilement dessiner un diagramme de séquence avec un script tout en regardant l'exemple. Vous pouvez modifier la conception et la générer sous forme d'image. Si vous enregistrez votre adresse e-mail, vous pouvez enregistrer les données sur le site. Cependant, comme l'image de sortie a une faible qualité d'image et qu'un logo apparaît en bas à droite (il semble que cela puisse être résolu en chargeant), il semble qu'elle ne puisse pas être utilisée à des fins commerciales, mais il semble qu'elle puisse être utilisée pour organiser des idées.

Recommended Posts