2013-03-03 11 views
9

Czy istnieje sposób sprawdzenia, czy JZMQ (połączenie Java z gniazdem zmq) jest podłączone?Jak sprawdzić, czy gniazdo JZMQ jest podłączone?

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

Po powyższym kodzie chciałbym sprawdzić, czy workerSocket jest podłączony. Byłoby miło sprawdzić stan połączenia.

Odpowiedz

10

Nie, w interfejsie API nie ma metody sprawdzania, czy gniazdo jest podłączone.

ZeroMq generuje sieć; połączenia klienta i serwera są całkowicie przezroczyste dla partnera nawiązującego połączenie. Klient lub serwer może wysyłać wiadomości do nieistniejących rówieśników; nie będą generowane żadne błędy; zamiast tego będą ustawiać się w kolejce w buforach gniazd na podstawie konfiguracji HWM.

Aby sprawdzić dostępność peera, zrób to ręcznie, używając synchronicznego żądania/odpowiedzi z rytmem serca z czasem oczekiwania; oto przykład, mam nadzieję, że pomoże!

Sprawdź próbki do zapytania/odpowiedzi tutaj! https://github.com/imatix/zguide/tree/master/examples/

+1

Link nie działa. Może mógłbyś dodać małą próbkę do swojej odpowiedzi? :) To jest wpis na blogu w pamięci podręcznej Google: 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, zaktualizowany link: Jeśli szukasz podstawowych przykładów żądań/odpowiedzi, istnieje wiele różnych języków docelowych, zobacz tutaj: https://github.com/imatix/zguide/tree/master/ przykłady /, przykłady z przedrostkiem 'rr' oznaczają próbki żądania/odpowiedzi – raffian

+0

Dzięki, osobiście nie jestem, mogę sam to zrobić, ale natknąłem się na to i zauważyłem link, więc pomyślałem, że chciałbyś wiedzieć;) – Theolodis

Powiązane problemy