Let me rephrase: type(message) in handleHeartbeat() is ListType, not StringType as you are expecting. See the zmq docs I referred to - your callback receives a multipart list, not just a single blob of data.
Oliver On Fri, Mar 22, 2013 at 4:09 PM, Hielke Kramer <kram...@gmail.com> wrote: > No, my callback is given a protobuf serialized message. Exactly the same > as was sent in the first place. > > To explain a bit more: I've got earth and heaven. Earth sends heartbeats > and heaven responds back. If no message has been received on either side > for more than two seconds both ends start another task while earth keeps > sending messages hoping for heaven to come back. The codes are as follows: > > earth.py: http://pastebin.com/tvvSZeNR > heaven.py: http://pastebin.com/rtzCsuvg > link to errors: http://pastebin.com/jX4SFapt > compiled protobuf message encoder in python: > http://www.hkramer.nl/opslag/infoPack_pb2.py > > Do you understand any of this? > > > > 2013/3/22 Oliver Jowett <oliver.jow...@gmail.com> > >> On Fri, Mar 22, 2013 at 8:45 AM, kramer65 <kram...@gmail.com> wrote: >> >>> I've been tinkering about this all night, but with a fresh view in the >>> morning I still can' t understand what is wrong here. The line where the >>> error originates is this: beat.ParseFromString(message) >>> >> >> Are you sure your callback is being given a string? >> >> From a quick look at >> http://zeromq.github.com/pyzmq/api/generated/zmq.eventloop.zmqstream.html, >> it says "callback must take exactly one argument, which will be a list, as >> returned by socket.recv_multipart()" - i.e. not just a simple string. >> >> Oliver >> >> > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to protobuf+unsubscr...@googlegroups.com. To post to this group, send email to email@example.com. Visit this group at http://groups.google.com/group/protobuf?hl=en. For more options, visit https://groups.google.com/groups/opt_out.