예제 #1
0
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")
예제 #2
0
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")
예제 #3
0
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")
예제 #4
0
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")
예제 #5
0
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()
예제 #6
0
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()
예제 #7
0
# 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>.",
예제 #8
0
# 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>.",