Dans la continuité de la dernière fois, 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é.
Dernière fois: J'ai vérifié le flux de communication TCP avec Spring Integration (édition client)
On suppose que ʻautoStartUp est activé, c'est-à-dire que ʻInbound 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 ʻInbound Gateway dans
Sender,
Listener comme expéditeur / récepteur (ʻInbound Gateway
implémente TcpSender
, TcpListener
).ServerSocketFactory
de générer ServerSocket
en fonction du numéro de port spécifié.TcpConnectionServerListeningEvent
.TcpConnection
enregistre ʻInbound Gateway comme expéditeur / récepteur via
ConnectionFactory`. contient
TcpConnection`,MessagingTemplate
, qui est un modèle pour la conversion de messages et le traitement commercial.TcpConnection
.MessageMapper
.MessageMapper
extrait et renvoie la charge utile du message.Remarques: Bien que omis dans la figure, il y a «Channel» et divers points de terminaison entre «MessagingTemplate» et «Inbound Gateway».
ConnectionExceptionEvent
si une exception se produit pendant que la connexion TCP est en cours d'établissement.Socket
.TcpConnection
demande à ʻInbound Gateway` de supprimer la connexion pour se déconnecter de la liste.Processor
, qui gère le LifeCycle
, de s'arrêter à la ʻInbound Gateway`. demande à
ConnectionFactory` de s'arrêter.ConnectionFactory
ferme ServerSocket
.TcpConnection
demande à ʻInbound Gateway` de supprimer la connexion pour se déconnecter de la liste. De plus, s'il reste des tâches, supprimez-les également.Remarques:
J'ai mentionné cela lorsqu'une exception s'est produite dans 1, mais cela fait référence au cas où Socket
est fermé.
Pour plus d'informations [TcpNetConneciton # run
](https://github.com/spring-projects/spring-integration/blob/master/spring-integration-ip/src/main/java/org/springframework/integration/ip/ Voir tcp / connection / TcpNetConnection.java # L169).
La figure ci-dessus a été créée à l'aide d'un service appelé WebSequenceDiagrams, en continuant de la fois précédente.
Recommended Posts