Skip to content

Instantly share code, notes, and snippets.

@zoranzaric
Created August 16, 2011 13:33
Show Gist options
  • Save zoranzaric/1149075 to your computer and use it in GitHub Desktop.
Save zoranzaric/1149075 to your computer and use it in GitHub Desktop.
import zmq
import message_pb2
import time
import uuid
import struct
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://127.0.0.1:5000")
u = uuid.uuid4()
u_least, u_most = struct.unpack('>qq', u.get_bytes())
message = message_pb2.Message()
#message.uuid_least_significant = u_least
#message.uuid_most_significant = u_most
message.uuid_least_significant = 0
message.uuid_most_significant = 0
message.type = message.PING
message.time_stamp = int(time.time())
message.payload = "Foo"
socket.send(message.SerializeToString())
message Message {
enum MessageType {
PING = 0;
GET_PEER_LIST = 1;
GET_COMPLETE_PEER_LIST = 2;
REPORT_MONITORING_INFORMATION = 3;
REGISTER_STREAM = 4;
REGISTER_CHILD = 5;
}
required fixed64 uuid_least_significant = 1;
required fixed64 uuid_most_significant = 2;
required MessageType type = 3;
required int64 time_stamp = 4;
required bytes payload = 5;
}
# Generated by the protocol buffer compiler. DO NOT EDIT!
from google.protobuf import descriptor
from google.protobuf import message
from google.protobuf import reflection
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)
DESCRIPTOR = descriptor.FileDescriptor(
name='message.proto',
package='',
serialized_pb='\n\rmessage.proto\"\xa6\x02\n\x07Message\x12\x1e\n\x16uuid_least_significant\x18\x01 \x02(\x06\x12\x1d\n\x15uuid_most_significant\x18\x02 \x02(\x06\x12\"\n\x04type\x18\x03 \x02(\x0e\x32\x14.Message.MessageType\x12\x12\n\ntime_stamp\x18\x04 \x02(\x03\x12\x0f\n\x07payload\x18\x05 \x02(\x0c\"\x92\x01\n\x0bMessageType\x12\x08\n\x04PING\x10\x00\x12\x11\n\rGET_PEER_LIST\x10\x01\x12\x1a\n\x16GET_COMPLETE_PEER_LIST\x10\x02\x12!\n\x1dREPORT_MONITORING_INFORMATION\x10\x03\x12\x13\n\x0fREGISTER_STREAM\x10\x04\x12\x12\n\x0eREGISTER_CHILD\x10\x05')
_MESSAGE_MESSAGETYPE = descriptor.EnumDescriptor(
name='MessageType',
full_name='Message.MessageType',
filename=None,
file=DESCRIPTOR,
values=[
descriptor.EnumValueDescriptor(
name='PING', index=0, number=0,
options=None,
type=None),
descriptor.EnumValueDescriptor(
name='GET_PEER_LIST', index=1, number=1,
options=None,
type=None),
descriptor.EnumValueDescriptor(
name='GET_COMPLETE_PEER_LIST', index=2, number=2,
options=None,
type=None),
descriptor.EnumValueDescriptor(
name='REPORT_MONITORING_INFORMATION', index=3, number=3,
options=None,
type=None),
descriptor.EnumValueDescriptor(
name='REGISTER_STREAM', index=4, number=4,
options=None,
type=None),
descriptor.EnumValueDescriptor(
name='REGISTER_CHILD', index=5, number=5,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=166,
serialized_end=312,
)
_MESSAGE = descriptor.Descriptor(
name='Message',
full_name='Message',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
descriptor.FieldDescriptor(
name='uuid_least_significant', full_name='Message.uuid_least_significant', index=0,
number=1, type=6, cpp_type=4, label=2,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
descriptor.FieldDescriptor(
name='uuid_most_significant', full_name='Message.uuid_most_significant', index=1,
number=2, type=6, cpp_type=4, label=2,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
descriptor.FieldDescriptor(
name='type', full_name='Message.type', index=2,
number=3, type=14, cpp_type=8, label=2,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
descriptor.FieldDescriptor(
name='time_stamp', full_name='Message.time_stamp', index=3,
number=4, type=3, cpp_type=2, label=2,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
descriptor.FieldDescriptor(
name='payload', full_name='Message.payload', index=4,
number=5, type=12, cpp_type=9, label=2,
has_default_value=False, default_value="",
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_MESSAGE_MESSAGETYPE,
],
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=18,
serialized_end=312,
)
_MESSAGE.fields_by_name['type'].enum_type = _MESSAGE_MESSAGETYPE
_MESSAGE_MESSAGETYPE.containing_type = _MESSAGE;
DESCRIPTOR.message_types_by_name['Message'] = _MESSAGE
class Message(message.Message):
__metaclass__ = reflection.GeneratedProtocolMessageType
DESCRIPTOR = _MESSAGE
# @@protoc_insertion_point(class_scope:Message)
# @@protoc_insertion_point(module_scope)
protobuf==2.4.1
pyzmq==2.1.7
import zmq
import message_pb2
context = zmq.Context(1)
socket = context.socket(zmq.REP)
socket.bind("tcp://127.0.0.1:5000")
message = message_pb2.Message()
message.ParseFromString(socket.recv())
print message
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment