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