def server_routine(context, url): # Each server thread socket must have a unique identity within the # server (doesn't need to be globally unique) tid = threading.current_thread().ident socket = context.socket(zmq.XREP) socket.setsockopt(zmq.IDENTITY, str(tid)) sockid = socket.getsockopt(zmq.IDENTITY) socket.connect(url) print "RR Server HWM: %d, ID: %s" % (socket.getsockopt( zmq.HWM), zhelpers.format_part(sockid)) while True: message = socket.recv() more = socket.getsockopt(zmq.RCVMORE) if more: print "Svr>>", zhelpers.dump_part(message) socket.send(message, zmq.SNDMORE) else: print "Svr>.", zhelpers.dump_part(message) # End of multi-part message print "Server %s received request: [%s]" % ( zhelpers.format_part(sockid), message) time.sleep(1) socket.send("World")
def server_routine(context, url): socket = context.socket(zmq.XREP) socket.connect(url) sockid = socket.getsockopt(zmq.IDENTITY) print type(sockid), repr(sockid) print "RR Server HWM: %d, ID: %s" % (socket.getsockopt( zmq.HWM), zhelpers.format_part(sockid)) while True: message = socket.recv() more = socket.getsockopt(zmq.RCVMORE) if more: print "Svr>>", zhelpers.dump_part(message) socket.send(message, zmq.SNDMORE) else: print "Svr>.", zhelpers.dump_part(message) # End of multi-part message print "Server %s received request: [%s]" % ( zhelpers.format_part(sockid), message) time.sleep(1) socket.send("World")
def server_routine( context, url ): # Each server thread socket must have a unique identity within the # server (doesn't need to be globally unique) tid = threading.current_thread().ident socket = context.socket( zmq.XREP ) socket.setsockopt( zmq.IDENTITY, str( tid )) sockid = socket.getsockopt( zmq.IDENTITY ) socket.connect( url ) print "RR Server HWM: %d, ID: %s" % ( socket.getsockopt(zmq.HWM), zhelpers.format_part( sockid )) while True: message = socket.recv() more = socket.getsockopt(zmq.RCVMORE) if more: print "Svr>>", zhelpers.dump_part(message) socket.send(message, zmq.SNDMORE) else: print "Svr>.", zhelpers.dump_part(message) # End of multi-part message print "Server %s received request: [%s]" % ( zhelpers.format_part( sockid ), message ) time.sleep( 1 ) socket.send("World")
def server_routine( context, url ): socket = context.socket(zmq.XREP) socket.connect( url ) sockid = socket.getsockopt( zmq.IDENTITY ) print type( sockid ), repr( sockid ) print "RR Server HWM: %d, ID: %s" % ( socket.getsockopt(zmq.HWM), zhelpers.format_part( sockid )) while True: message = socket.recv() more = socket.getsockopt(zmq.RCVMORE) if more: print "Svr>>", zhelpers.dump_part(message) socket.send(message, zmq.SNDMORE) else: print "Svr>.", zhelpers.dump_part(message) # End of multi-part message print "Server %s received request: [%s]" % ( zhelpers.format_part( sockid ), message ) time.sleep( 1 ) socket.send("World")
def broker_routine(context, front, back): frontend = context.socket(zmq.XREP) frontend.setsockopt(zmq.IDENTITY, front) frontend.bind(front) print "Broker Front HWM: %d, ID: %r" % (frontend.getsockopt( zmq.HWM), frontend.getsockopt(zmq.IDENTITY)) backend = context.socket(zmq.XREQ) backend.setsockopt(zmq.IDENTITY, back) backend.bind(back) print "Broker Back HWM: %d, ID: %r" % (backend.getsockopt( zmq.HWM), backend.getsockopt(zmq.IDENTITY)) # Initialize poll set poller = zmq.Poller() poller.register(frontend, zmq.POLLIN) poller.register(backend, zmq.POLLIN) # Switch messages between sockets while True: socks = dict(poller.poll()) if socks.get(frontend) == zmq.POLLIN: message = frontend.recv() more = frontend.getsockopt(zmq.RCVMORE) if more: print "Rtr<<", zhelpers.dump_part(message) backend.send(message, zmq.SNDMORE) else: print "Rtr<.", zhelpers.dump_part(message) backend.send(message) if message == "HALT": # TODO: Shut down cleanly; wait for completion of # all ongoing prototcol sessions break if socks.get(backend) == zmq.POLLIN: message = backend.recv() more = backend.getsockopt(zmq.RCVMORE) if more: print "Rtr>>", zhelpers.dump_part(message) frontend.send(message, zmq.SNDMORE) else: print "Rtr>.", zhelpers.dump_part(message) frontend.send(message) print "Rtr: Halting." frontend.close() backend.close()
def broker_routine( context, front, back ): frontend = context.socket( zmq.XREP ) frontend.setsockopt( zmq.IDENTITY, front ) frontend.bind( front ) print "Broker Front HWM: %d, ID: %r" % ( frontend.getsockopt(zmq.HWM), frontend.getsockopt(zmq.IDENTITY )) backend = context.socket( zmq.XREQ ) backend.setsockopt( zmq.IDENTITY, back ) backend.bind( back ) print "Broker Back HWM: %d, ID: %r" % ( backend.getsockopt(zmq.HWM), backend.getsockopt(zmq.IDENTITY )) # Initialize poll set poller = zmq.Poller() poller.register(frontend, zmq.POLLIN) poller.register(backend, zmq.POLLIN) # Switch messages between sockets while True: socks = dict(poller.poll()) if socks.get(frontend) == zmq.POLLIN: message = frontend.recv() more = frontend.getsockopt(zmq.RCVMORE) if more: print "Rtr<<", zhelpers.dump_part(message) backend.send(message, zmq.SNDMORE) else: print "Rtr<.", zhelpers.dump_part(message) backend.send(message) if message == "HALT": # TODO: Shut down cleanly; wait for completion of # all ongoing prototcol sessions break if socks.get(backend) == zmq.POLLIN: message = backend.recv() more = backend.getsockopt(zmq.RCVMORE) if more: print "Rtr>>", zhelpers.dump_part(message) frontend.send(message, zmq.SNDMORE) else: print "Rtr>.", zhelpers.dump_part(message) frontend.send(message) print "Rtr: Halting." frontend.close() backend.close()
# Initialize poll set poller = zmq.Poller() poller.register(frontend, zmq.POLLIN) poller.register(backend, zmq.POLLIN) # Switch messages between sockets while True: socks = dict(poller.poll()) if socks.get(frontend) == zmq.POLLIN: message = frontend.recv() more = frontend.getsockopt(zmq.RCVMORE) if more: print "Rtr<<", zhelpers.dump_part(message) backend.send(message, zmq.SNDMORE) else: print "Rtr<.", zhelpers.dump_part(message) backend.send(message) if socks.get(backend) == zmq.POLLIN: message = backend.recv() more = backend.getsockopt(zmq.RCVMORE) if more: print "Rtr>>", zhelpers.dump_part(message) frontend.send(message, zmq.SNDMORE) else: print "Rtr>.",