Um den Ablauf der TCP-Kommunikation mit Spring Integration zu organisieren, habe ich auf der Clientseite ein Sequenzdiagramm gezeichnet, das jedoch kompliziert ist.
Es wird davon ausgegangen, dass "autoStartUp" aktiviert ist, dh "Outbound Gateway" und "ConnectionFactory" werden beim Start der Anwendung gestartet. Das machte den Ausgangspunkt seltsam: verwirrt :.
Outbound Gateway
ruft die Methode auf, mit der ConnectionFactory
festgelegt wird.ConnectionFactory
registriert OutboundGateway
in Sender
/ Listener
als Sender / Empfänger (OutboundGateway
implementiert TcpSender
/ TcpListener
). TcpSender
ist die Schnittstelle zum Herstellen einer Verbindung von der Verbindungsfactory zum Senden einer Nachricht, und TcpListener
ist die Schnittstelle zum Empfangen der empfangenen Nachricht von der Verbindung.Outbound Gateway
ruft ConnectionFactory
auf, um eine Verbindung herzustellen.ConnectionFactory
ruft buildNewConnection ()
of TcpConnection
auf, um eine neue Verbindung herzustellen. Überprüfen Sie beim Freigeben einer Verbindung (single-use = false
) zunächst, ob bereits eine verwendbare Verbindung besteht. Veröffentlichen Sie ein Ereignis, wenn eine neue Verbindung hergestellt wird.Outbound Gateway
enthält TcpConnection
in der Variablen.Wird zwischen 6 und 7 aufgerufen, wenn "Interceptor" definiert ist.
TcpConnection
bewirkt, dass MessageMapper
das empfangene Objekt dem Nachrichtenobjekt zuordnet.MessageMapper
bearbeitet den Header und gibt eine Nachricht an TcpConnection
zurück.TcpConnection
leitet eine Nachricht an Outbound Gateway
weiter.Outbound Gateway
prüft, ob die empfangene Nachricht an das Gesendete gebunden ist und leitet sie an AsyncRepry
weiter.AsyncRepry
empfängt die Nachricht und zählt den Latch herunter.single-use = true
), schließen Sie die Verbindung. In diesem Fall wird ein Ereignis ausgegeben.Outbound Gateway
gibt das Ergebnis an Message Gateway
zurück.Message Gateway
gibt das Ergebnis an den Client zurück.Wenn Sie "Interceptor" definiert haben, wird dieser bei 3 aufgerufen, bevor die Nachricht an "Outbound Gateway" weitergeleitet wird.
Bemerkungen: Obwohl in der Abbildung weggelassen, gibt es zwischen "Message Gateway" und "Outbound Gateway" "Channel" und verschiedene Endpunkte.
In diesem Fall handelt es sich um eine TCP-Kommunikation unter Verwendung von Spring Integration und zum Zweck der Organisation der Untersuchungsergebnisse Ich habe gepostet. Es gibt nicht viele japanische Dokumente, daher hoffe ich, dass es denjenigen hilft, die sich darüber Sorgen machen: Schweiß :. (Übrigens plant die Serverseite nicht, Spring Integration in diesem Projekt zu verwenden, daher werde ich es wahrscheinlich veröffentlichen.) Nein.
Die obige Abbildung wurde mit einem Dienst namens WebSequenceDiagrams erstellt. Sie können einfach ein Sequenzdiagramm mit einem Skript zeichnen, während Sie sich das Beispiel ansehen. Sie können das Design ändern und als Bild ausgeben. Wenn Sie Ihre E-Mail-Adresse registrieren, können Sie die Daten auf der Website speichern. Da das Ausgabebild jedoch eine geringe Bildqualität aufweist und unten rechts ein Logo enthalten ist (es scheint, dass es durch Aufladen gelöst werden kann), scheint es nicht für kommerzielle Zwecke verwendet werden zu können, sondern es kann zum Organisieren von Ideen verwendet werden.