2013-03-03 13 views
9

Gibt es eine Möglichkeit zu überprüfen, ob der JZMQ-Anschluss (java binding of zmq) angeschlossen ist?Wie überprüft man, ob der JZMQ-Anschluss angeschlossen ist

ZContext zmqContext = new ZContext(); 
ZMQ.Socket workerSocket = zmqContext.createSocket(ZMQ.DEALER); 
workerSocket.setIdentity("ID".getBytes()); 
workerSocket.connect("tcp://localhost:5556"); 

Nach dem obigen Code möchte ich überprüfen, ob workerSocket verbunden ist. Es wäre schön, den Verbindungsstatus zu überprüfen.

Antwort

10

Nein, in der API gibt es keine Methode, um zu prüfen, ob ein Socket angeschlossen ist.

ZeroMq abstrahiert das Netzwerk; Client- und Serververbindungen sind für den Peer, der die Verbindung herstellt, vollständig transparent. Ein Client oder Server kann Nachrichten an nicht vorhandene Peers senden. Es werden keine Fehler generiert. Stattdessen werden sie basierend auf der HWM-Konfiguration in Socket-Puffern angezeigt.

Um die Peer-Verfügbarkeit zu prüfen, führen Sie dies manuell mit einem synchronen Request/Reply-Heartbeat mit einem Timeout-Faktor durch; Hier ist ein Beispiel, hoffe es hilft!

Proben für Anfrage/Antwort hier auschecken! https://github.com/imatix/zguide/tree/master/examples/

+1

Die Verbindung ist tot. Vielleicht könnten Sie in Ihrer Antwort ein kleines Sample hinzufügen? :) Dies ist der Blogeintrag im Google Cache: http://webcache.googleusercontent.com/search?q=cache:ty68WXOpHXEJ:od-eon.com/blogs/stefan/checking-availability-zeromq-endpoint/+&cd= 2 & hl = de & ct = clnk – Theolodis

+0

thx, aktualisierter Link: Wenn Sie einfache Anfrage-/Antwort-Beispiele suchen, gibt es viele für verschiedene Zielsprachen, siehe hier: https://github.com/imatix/zguide/tree/master/ Beispiele /, Beispiele mit dem Präfix 'rr' bezeichnen Anfrage/Antwort-Beispiele – raffian

+0

Danke, persönlich bin ich nicht, ich kann das natürlich selbst googeln, aber ich bin auf dieses Problem gestoßen und habe den Link bemerkt, also dachte ich, du würdest es gerne wissen;) – Theolodis

Verwandte Themen