def test_monitor(self): """Test monitoring interface for sockets.""" s_rep = self.context.socket(zmq.REP) s_req = self.context.socket(zmq.REQ) self.sockets.extend([s_rep, s_req]) s_req.bind("tcp://127.0.0.1:6666") # try monitoring the REP socket s_rep.monitor("inproc://monitor.rep", zmq.EVENT_ALL) # create listening socket for monitor s_event = self.context.socket(zmq.PAIR) self.sockets.append(s_event) s_event.connect("inproc://monitor.rep") s_event.linger = 0 # test receive event for connect event s_rep.connect("tcp://127.0.0.1:6666") if zmq.zmq_version_info() < (3,3): self.assertRaises(NotImplementedError, get_monitor_message, s_event) return m = get_monitor_message(s_event) self.assertEqual(m['event'], zmq.EVENT_CONNECT_DELAYED) self.assertEqual(m['endpoint'], b"tcp://127.0.0.1:6666") # test receive event for connected event m = get_monitor_message(s_event) self.assertEqual(m['event'], zmq.EVENT_CONNECTED)
def logger(monitor): done = False while monitor.poll(timeout=5000): evt = get_monitor_message(monitor) print(json.dumps(evt, indent=1)) if evt['event'] == zmq.EVENT_MONITOR_STOPPED: break print() print("Logger done!") monitor.close()
def test_monitor_connected(self): """Test connected monitoring socket.""" s_rep = self.context.socket(zmq.REP) s_req = self.context.socket(zmq.REQ) self.sockets.extend([s_rep, s_req]) s_req.bind("tcp://127.0.0.1:6667") # try monitoring the REP socket # create listening socket for monitor s_event = s_rep.get_monitor_socket() s_event.linger = 0 self.sockets.append(s_event) # test receive event for connect event s_rep.connect("tcp://127.0.0.1:6667") m = get_monitor_message(s_event) self.assertEqual(m['event'], zmq.EVENT_CONNECT_DELAYED) self.assertEqual(m['endpoint'], b"tcp://127.0.0.1:6667") # test receive event for connected event m = get_monitor_message(s_event) self.assertEqual(m['event'], zmq.EVENT_CONNECTED)
def _handle_event_socket(self, s_event): while s_event.poll(timeout=0): emsg = get_monitor_message(s_event) to_pub = self._make_message(emsg) print "M:", pprint(to_pub) self.pub_socket.send_multipart(to_pub) ## if emsg['event'] in (128, ): ## poller.unregister(s) ## self._mon_sockets.remove(s) return