def __init__(self, socket_type, service_name, service_port=None, service_type=None): self.context = zmq.Context() self.socket = self.context.socket(socket_type) if not service_port: service_port = self.socket.bind_to_random_port('tcp://*', min_port=49152, max_port=65535, max_tries=100) else: self.socket.bind("tcp://*:%d" % service_port) print "Bound to port %d" % service_port self.stream = ZMQStream(self.socket) if not service_type: service_type = socket_type_to_service(socket_type) if socket_type == zmq.PUB: # TODO: how to handle this with ROUTER/DEALER combinations... self.heartbeat_timer = ioloop.PeriodicCallback( self._hearbeat, 1000) self.heartbeat_timer.start() if socket_type == zmq.ROUTER: self.stream.on_recv(self._method_callback_wrapper) bonjour_utilities.register_ioloop(ioloop.IOLoop.instance(), service_type, service_name, service_port)
def __init__(self, socket_type, service_name, service_port=None, service_type=None): self.context = zmq.Context() self.socket = self.context.socket(socket_type) if not service_port: service_port = self.socket.bind_to_random_port('tcp://*', min_port=49152, max_port=65535, max_tries=100) else: self.socket.bind("tcp://*:%d" % service_port) print "Bound to port %d" % service_port self.stream = ZMQStream(self.socket) if not service_type: service_type = socket_type_to_service(socket_type) if socket_type == zmq.PUB: # TODO: how to handle this with ROUTER/DEALER combinations... self.heartbeat_timer = ioloop.PeriodicCallback(self._hearbeat, 1000) self.heartbeat_timer.start() if socket_type == zmq.ROUTER: self.stream.on_recv(self._method_callback_wrapper) bonjour_utilities.register_ioloop(ioloop.IOLoop.instance(), service_type, service_name, service_port)
import itertools import random service_type="_zmqpubsub._tcp." service_name="test_pubsub" service_port=5555 context = zmq.Context() socket = context.socket(zmq.PUB) socket.bind("tcp://*:%d"%service_port) io_loop=ioloop.IOLoop.instance() bonjour_utilities.register_ioloop(io_loop, service_type, service_name, service_port) topic = itertools.cycle(('test','foo','bar')) stream = ZMQStream(socket) def send_random_data(): data = "%s bottles of beer on the wall" % random.randint(0,100000) #socket.send_multipart((topic.next(), data)) stream.send_multipart((topic.next(), data)) pcb = ioloop.PeriodicCallback(send_random_data, 100) pcb.start()
sys.path.append(libs_dir) import bonjour_utilities import itertools import random service_type = "_zmqpubsub._tcp." service_name = "test_pubsub" service_port = 5555 context = zmq.Context() socket = context.socket(zmq.PUB) socket.bind("tcp://*:%d" % service_port) io_loop = ioloop.IOLoop.instance() bonjour_utilities.register_ioloop(io_loop, service_type, service_name, service_port) topic = itertools.cycle(('test', 'foo', 'bar')) stream = ZMQStream(socket) def send_random_data(): data = "%s bottles of beer on the wall" % random.randint(0, 100000) #socket.send_multipart((topic.next(), data)) stream.send_multipart((topic.next(), data)) pcb = ioloop.PeriodicCallback(send_random_data, 100) pcb.start() io_loop.start()