2013-03-03 12 views
9

C'è modo di verificare se il socket JZMQ (java binding of zmq) è connesso?Come verificare se la presa JZMQ è collegata

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

Dopo il codice sopra, vorrei verificare se workerSocket è connesso. Sarebbe bello controllare lo stato della connessione.

risposta

10

No, non c'è alcun metodo nell'API per verificare se un socket è connesso.

ZeroMq astrae la rete; le connessioni client e server sono completamente trasparenti al peer che effettua la connessione. Un client o un server può inviare messaggi a peer inesistenti; non verranno generati errori; invece, si accoderanno nei buffer socket basati sulla configurazione HWM.

Per verificare la disponibilità del peer, farlo manualmente utilizzando un heartbeat sincrono di richiesta/risposta con un fattore di timeout; ecco un esempio, spero che aiuti!

Verifica campioni per richiesta/risposta qui! https://github.com/imatix/zguide/tree/master/examples/

+1

Il collegamento è morto. Forse potresti aggiungere un piccolo campione alla tua risposta? :) Questa è la voce del blog nella cache di googles: 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, link aggiornato: se stai cercando esempi di richiesta/risposta di base, ce ne sono molti per diverse lingue di destinazione, vedi qui: https://github.com/imatix/zguide/tree/master/ esempi /, esempi con prefisso 'rr' denotare richiesta/risposta campioni – raffian

+0

Grazie, personalmente non lo sono, posso ususlly google che io stesso, ma mi sono imbattuto in questo e ho notato il link, quindi ho pensato che avresti voluto sapere;) – Theolodis

Problemi correlati