I’m not so new to zmq but absolutely new to zyre. I’ve an application where zyre seems to be the way to go, but I’m struggling to get it go.
I think I have a clue what zyre should do, but still not sure about that I need somebody to bring me some light in if I run 2 instances of the program on the same machine, it does as (I) expect. if I run it on different machines it does strange things I do not understand at all. here the code a basic try #include "zyre.h" #define ROOM "DEFAULT" int main(int argc, char *argv[]) { if (argc < 3) { puts("syntax: ./pc_zyreObserver name room"); exit(0); } const char *name = argv[1]; const char *room = argv[2]; assert(name); assert(room); zyre_t *node1 = zyre_new(name); assert(node1); zyre_set_header(node1, "X-HELLO", "World"); zyre_set_verbose (node1); if (zyre_start(node1)) { zyre_destroy(&node1); printf("OK (skipping test, no UDP discovery)\n"); return -1; } zyre_join(node1, room); zpoller_t *poller = zpoller_new(zyre_socket(node1), NULL); assert(poller); zclock_sleep (250); uint8_t cnt = 0; while (!zsys_interrupted) { void *which = zpoller_wait(poller, 500); if (which == zyre_socket(node1)) { } else if (zpoller_expired(poller)) { /* zsys_info("[%s] shouting into [%s]", name, room); zmsg_t *msg = zmsg_new (); zmsg_addstr (msg, "Hello, World"); zyre_shout (node1, room, &msg); */ } else if (zpoller_terminated(poller)) { zsys_info("poller_terminated\n bye bye ..."); break; // Interrupted } } zyre_destroy (&node1); } and the output on different sceneries started 2 times on the same PC mav1 D: 20-12-08 22:46:44 mav1: API command=START I: 20-12-08 22:46:44 zbeacon: API command=CONFIGURE I: 20-12-08 22:46:44 zbeacon: interface=enp3s0 address=192.168.1.106 broadcast=192.168.1.255 I: 20-12-08 22:46:44 zbeacon: configured, hostname=192.168.1.106 D: 20-12-08 22:46:44 mav1: API command=JOIN I: 20-12-08 22:46:44 zbeacon: API command=PUBLISH I: 20-12-08 22:46:44 (mav1) JOIN group=TTT I: 20-12-08 22:46:44 zbeacon: API command=SUBSCRIBE I: 20-12-08 22:46:44 (mav1) connect to peer: endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:46:44 (mav1) send HELLO to peer=- sequence=1 I: 20-12-08 22:46:44 (mav1) recv HELLO from peer=- sequence=1 I: 20-12-08 22:46:44 (mav1) ENTER name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:46:44 (mav1) JOIN name=mav2 group=TTT I: 20-12-08 22:46:49 (mav1) peer does not send messages (evasive) name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:46:49 (mav1) send PING to peer=mav2 sequence=2 I: 20-12-08 22:46:49 (mav1) recv PING_OK from peer=mav2 sequence=2 I: 20-12-08 22:46:54 (mav1) peer does not send messages (evasive) name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:46:54 (mav1) send PING to peer=mav2 sequence=3 I: 20-12-08 22:46:54 (mav1) recv PING_OK from peer=mav2 sequence=3 I: 20-12-08 22:46:59 (mav1) peer does not send messages (evasive) name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:46:59 (mav1) send PING to peer=mav2 sequence=4 I: 20-12-08 22:46:59 (mav1) recv PING_OK from peer=mav2 sequence=4 I: 20-12-08 22:47:04 (mav1) peer does not send messages (evasive) name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:47:04 (mav1) send PING to peer=mav2 sequence=5 I: 20-12-08 22:47:04 (mav1) recv PING_OK from peer=mav2 sequence=5 ^CI: 20-12-08 22:47:06 poller_terminated bye bye … D: 20-12-08 22:47:06 mav1: API command=[TERM I: 20-12-08 22:47:06 zbeacon: API command=]TERM mav2 D: 20-12-08 22:46:34 mav2: API command=START I: 20-12-08 22:46:34 zbeacon: API command=CONFIGURE I: 20-12-08 22:46:34 zbeacon: interface=enp3s0 address=192.168.1.106 broadcast=192.168.1.255 I: 20-12-08 22:46:34 zbeacon: configured, hostname=192.168.1.106 I: 20-12-08 22:46:34 zbeacon: API command=PUBLISH D: 20-12-08 22:46:34 mav2: API command=JOIN I: 20-12-08 22:46:34 (mav2) JOIN group=TTT I: 20-12-08 22:46:34 zbeacon: API command=SUBSCRIBE I: 20-12-08 22:46:44 (mav2) connect to peer: endpoint=tcp://192.168.1.106:49153 I: 20-12-08 22:46:44 (mav2) send HELLO to peer=- sequence=1 I: 20-12-08 22:46:44 (mav2) recv HELLO from peer=- sequence=1 I: 20-12-08 22:46:44 (mav2) ENTER name=mav1 endpoint=tcp://192.168.1.106:49153 I: 20-12-08 22:46:44 (mav2) JOIN name=mav1 group=TTT I: 20-12-08 22:46:49 (mav2) recv PING from peer=mav1 sequence=2 I: 20-12-08 22:46:49 (mav2) send PING_OK to peer=mav1 sequence=2 I: 20-12-08 22:46:54 (mav2) recv PING from peer=mav1 sequence=3 I: 20-12-08 22:46:54 (mav2) send PING_OK to peer=mav1 sequence=3 I: 20-12-08 22:46:59 (mav2) recv PING from peer=mav1 sequence=4 I: 20-12-08 22:46:59 (mav2) send PING_OK to peer=mav1 sequence=4 I: 20-12-08 22:47:04 (mav2) recv PING from peer=mav1 sequence=5 I: 20-12-08 22:47:04 (mav2) send PING_OK to peer=mav1 sequence=5 ^CI: 20-12-08 22:47:10 poller_terminated bye bye … D: 20-12-08 22:47:10 mav2: API command=[TERM I: 20-12-08 22:47:10 zbeacon: API command=]TERM /**/ started on beaglebone and PC the BB D: 20-12-09 03:41:52 bb1: API command=START I: 20-12-09 03:41:52 zbeacon: API command=CONFIGURE I: 20-12-09 03:41:52 zbeacon: interface=eth0 address=192.168.1.110 broadcast=192.168.1.255 I: 20-12-09 03:41:52 zbeacon: configured, hostname=192.168.1.110 D: 20-12-09 03:41:52 bb1: API command=JOIN I: 20-12-09 03:41:52 (bb1) JOIN group=TTT I: 20-12-09 03:41:52 zbeacon: API command=PUBLISH I: 20-12-09 03:41:52 zbeacon: API command=SUBSCRIBE I: 20-12-09 03:41:55 (bb1) connect to peer: endpoint=tcp://192.168.1.106:49152 I: 20-12-09 03:41:55 (bb1) send HELLO to peer=- sequence=1 I: 20-12-09 03:41:55 (bb1) recv HELLO from peer=- sequence=1 I: 20-12-09 03:41:55 (bb1) ENTER name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-09 03:41:55 (bb1) JOIN name=mav2 group=TTT I: 20-12-09 03:42:01 (bb1) recv PING from peer=mav2 sequence=2 I: 20-12-09 03:42:01 (bb1) send PING_OK to peer=mav2 sequence=2 I: 20-12-09 03:42:02 (bb1) recv PING from peer=mav2 sequence=3 I: 20-12-09 03:42:02 (bb1) send PING_OK to peer=mav2 sequence=3 I: 20-12-09 03:42:03 (bb1) recv PING from peer=mav2 sequence=4 I: 20-12-09 03:42:03 (bb1) send PING_OK to peer=mav2 sequence=4 I: 20-12-09 03:42:04 (bb1) recv PING from peer=mav2 sequence=5 I: 20-12-09 03:42:04 (bb1) send PING_OK to peer=mav2 sequence=5 I: 20-12-09 03:42:05 (bb1) recv PING from peer=mav2 sequence=6 I: 20-12-09 03:42:05 (bb1) send PING_OK to peer=mav2 sequence=6 I: 20-12-09 03:42:06 (bb1) recv PING from peer=mav2 sequence=7 I: 20-12-09 03:42:06 (bb1) send PING_OK to peer=mav2 sequence=7 ^CI: 20-12-09 03:42:11 poller_terminated bye bye … D: 20-12-09 03:42:11 bb1: API command=[TERM I: 20-12-09 03:42:11 zbeacon: API command=]TERM the mav D: 20-12-08 22:41:55 mav2: API command=START I: 20-12-08 22:41:55 zbeacon: API command=CONFIGURE I: 20-12-08 22:41:55 zbeacon: interface=enp3s0 address=192.168.1.106 broadcast=192.168.1.255 I: 20-12-08 22:41:55 zbeacon: configured, hostname=192.168.1.106 I: 20-12-08 22:41:55 zbeacon: API command=PUBLISH D: 20-12-08 22:41:55 mav2: API command=JOIN I: 20-12-08 22:41:55 (mav2) JOIN group=TTT I: 20-12-08 22:41:55 zbeacon: API command=SUBSCRIBE I: 20-12-08 22:41:55 (mav2) connect to peer: endpoint=tcp://192.168.1.110:49152 I: 20-12-08 22:41:55 (mav2) send HELLO to peer=- sequence=1 I: 20-12-08 22:42:01 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.110:49152 I: 20-12-08 22:42:01 (mav2) send PING to peer=- sequence=2 I: 20-12-08 22:42:02 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.110:49152 I: 20-12-08 22:42:02 (mav2) send PING to peer=- sequence=3 I: 20-12-08 22:42:02 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:42:03 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.110:49152 I: 20-12-08 22:42:03 (mav2) send PING to peer=- sequence=4 I: 20-12-08 22:42:03 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:42:04 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.110:49152 I: 20-12-08 22:42:04 (mav2) send PING to peer=- sequence=5 I: 20-12-08 22:42:04 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:42:05 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.110:49152 I: 20-12-08 22:42:05 (mav2) send PING to peer=- sequence=6 I: 20-12-08 22:42:05 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:42:06 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.110:49152 I: 20-12-08 22:42:06 (mav2) send PING to peer=- sequence=7 I: 20-12-08 22:42:06 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) ^CI: 20-12-08 22:42:07 poller_terminated bye bye … D: 20-12-08 22:42:07 mav2: API command=[TERM I: 20-12-08 22:42:07 zbeacon: API command=]TERM /**/ a virtual machine and the pc with ethernet bridged (the two are in same LAN) the virtual machine on PC D: 20-12-08 22:49:51 v-buster: API command=START I: 20-12-08 22:49:51 zbeacon: API command=CONFIGURE I: 20-12-08 22:49:51 zbeacon: interface=enp0s3 address=192.168.1.108 broadcast=192.168.1.255 I: 20-12-08 22:49:51 zbeacon: configured, hostname=192.168.1.108 D: 20-12-08 22:49:51 v-buster: API command=JOIN I: 20-12-08 22:49:51 (v-buster) JOIN group=TTT I: 20-12-08 22:49:51 zbeacon: API command=PUBLISH I: 20-12-08 22:49:51 zbeacon: API command=SUBSCRIBE I: 20-12-08 22:50:17 (v-buster) connect to peer: endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:50:17 (v-buster) send HELLO to peer=- sequence=1 I: 20-12-08 22:50:18 (v-buster) recv HELLO from peer=- sequence=1 I: 20-12-08 22:50:18 (v-buster) ENTER name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:50:18 (v-buster) JOIN name=mav2 group=TTT I: 20-12-08 22:50:23 (v-buster) peer does not send messages (evasive) name=mav2 endpoint=tcp://192.168.1.106:49152 I: 20-12-08 22:50:23 (v-buster) send PING to peer=mav2 sequence=2 I: 20-12-08 22:50:23 (v-buster) recv PING from peer=mav2 sequence=2 I: 20-12-08 22:50:23 (v-buster) send PING_OK to peer=mav2 sequence=3 I: 20-12-08 22:50:24 (v-buster) recv PING from peer=mav2 sequence=3 I: 20-12-08 22:50:24 (v-buster) send PING_OK to peer=mav2 sequence=4 I: 20-12-08 22:50:25 (v-buster) recv PING from peer=mav2 sequence=4 I: 20-12-08 22:50:25 (v-buster) send PING_OK to peer=mav2 sequence=5 I: 20-12-08 22:50:26 (v-buster) recv PING from peer=mav2 sequence=5 I: 20-12-08 22:50:26 (v-buster) send PING_OK to peer=mav2 sequence=6 I: 20-12-08 22:50:27 (v-buster) recv PING from peer=mav2 sequence=6 I: 20-12-08 22:50:27 (v-buster) send PING_OK to peer=mav2 sequence=7 I: 20-12-08 22:50:28 (v-buster) recv PING from peer=mav2 sequence=7 I: 20-12-08 22:50:28 (v-buster) send PING_OK to peer=mav2 sequence=8 I: 20-12-08 22:50:29 (v-buster) recv PING from peer=mav2 sequence=8 I: 20-12-08 22:50:29 (v-buster) send PING_OK to peer=mav2 sequence=9 I: 20-12-08 22:50:30 (v-buster) recv PING from peer=mav2 sequence=9 I: 20-12-08 22:50:30 (v-buster) send PING_OK to peer=mav2 sequence=10 I: 20-12-08 22:50:31 (v-buster) recv PING from peer=mav2 sequence=10 I: 20-12-08 22:50:31 (v-buster) send PING_OK to peer=mav2 sequence=11 I: 20-12-08 22:50:32 (v-buster) recv PING from peer=mav2 sequence=11 I: 20-12-08 22:50:32 (v-buster) send PING_OK to peer=mav2 sequence=12 ^CI: 20-12-08 22:50:34 poller_terminated bye bye … D: 20-12-08 22:50:34 v-buster: API command=[TERM I: 20-12-08 22:50:34 zbeacon: API command=]TERM the pc D: 20-12-08 22:50:17 mav2: API command=START I: 20-12-08 22:50:17 zbeacon: API command=CONFIGURE I: 20-12-08 22:50:17 zbeacon: interface=enp3s0 address=192.168.1.106 broadcast=192.168.1.255 I: 20-12-08 22:50:17 zbeacon: configured, hostname=192.168.1.106 D: 20-12-08 22:50:17 mav2: API command=JOIN I: 20-12-08 22:50:17 (mav2) JOIN group=TTT I: 20-12-08 22:50:17 zbeacon: API command=PUBLISH I: 20-12-08 22:50:17 zbeacon: API command=SUBSCRIBE I: 20-12-08 22:50:17 (mav2) connect to peer: endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:17 (mav2) send HELLO to peer=- sequence=1 I: 20-12-08 22:50:23 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:23 (mav2) send PING to peer=- sequence=2 I: 20-12-08 22:50:24 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:24 (mav2) send PING to peer=- sequence=3 I: 20-12-08 22:50:24 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:25 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:25 (mav2) send PING to peer=- sequence=4 I: 20-12-08 22:50:25 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:26 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:26 (mav2) send PING to peer=- sequence=5 I: 20-12-08 22:50:26 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:27 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:27 (mav2) send PING to peer=- sequence=6 I: 20-12-08 22:50:27 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:28 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:28 (mav2) send PING to peer=- sequence=7 I: 20-12-08 22:50:28 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:29 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:29 (mav2) send PING to peer=- sequence=8 I: 20-12-08 22:50:29 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:30 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:30 (mav2) send PING to peer=- sequence=9 I: 20-12-08 22:50:30 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:31 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:31 (mav2) send PING to peer=- sequence=10 I: 20-12-08 22:50:31 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) I: 20-12-08 22:50:32 (mav2) peer does not send messages (evasive) name= endpoint=tcp://192.168.1.108:49152 I: 20-12-08 22:50:32 (mav2) send PING to peer=- sequence=11 I: 20-12-08 22:50:32 (mav2) peer ‘’ has not answered ping after 1000 milliseconds (silent) ^CI: 20-12-08 22:50:32 poller_terminated bye bye … D: 20-12-08 22:50:32 mav2: API command=[TERM I: 20-12-08 22:50:32 zbeacon: API command=]TERM
_______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev