Abhishek K said the following on 8/24/2010 8:05 AM:
Hi

I am new to ZeroMQ
I am using a Client Server Model in Python.
This is the basic outline of the server code.

context=zmq.Context()
socket=context.socket(zmq.REP)
socket.bind('tcp://127.0.0.1:5555 <http://127.0.0.1:5555>')
while True:
    message=socket.recv()
    if message[:2]=="01":
    ##logic1
    if messafe[:2]=="02":
      ## logic 2

    socket.send(response)


I have 2 questions,

    * I think the if the message processing logic takes lot of time,
      how can I thread the process of processing the message (in Python)
    * I need to send an options along with the message, currently I am
      sending the options as the first  2 characters of the message.
      (message[:]). Is there a better way provided by ZMQ.

Bear in mind that Python's default threading system isn't true threading... Your first option might be to create separate threads with different endpoints for different message types. You could maybe look at Stackless python for the threading.

You could use the multipart message scheme for splitting the options from the message, and then use a lookup table to decide what function to call to process the second half of the message.

    handlers = {
        '01' : handle01
    ,    '02': handle02
    ...
    }

    def handle01(msg):
        ...

    def handle02(msg):
        ...

    main():
        ...
        msg = sock.recv()
        prefix = msg[:2]
        if not prefix in handlers:
            error(msg)
        else:
            handlers[prefix](msg[2:])

- Oliver


_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to