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