diff --git a/vnpy/rpc/vnrpc.py b/vnpy/rpc/vnrpc.py index c3a979c9..e9325743 100644 --- a/vnpy/rpc/vnrpc.py +++ b/vnpy/rpc/vnrpc.py @@ -38,8 +38,8 @@ class RpcObject(object): def __init__(self): """Constructor""" # 默认使用msgpack作为序列化工具 - #self.useMsgpack() - self.usePickle() + self.useMsgpack() + #self.usePickle() #---------------------------------------------------------------------- def pack(self, data): @@ -84,18 +84,22 @@ class RpcObject(object): #---------------------------------------------------------------------- def useJson(self): """使用json作为序列化工具""" + print 'Use Json Serialization' + self.pack = self.__jsonPack self.unpack = self.__jsonUnpack #---------------------------------------------------------------------- def useMsgpack(self): """使用msgpack作为序列化工具""" + print 'Use MsgPack Serialization' self.pack = self.__msgpackPack self.unpack = self.__msgpackUnpack #---------------------------------------------------------------------- def usePickle(self): """使用cPickle作为序列化工具""" + print 'Use Pickle Serialization' self.pack = self.__picklePack self.unpack = self.__pickleUnpack @@ -185,7 +189,7 @@ class RpcServer(RpcObject): """ # 序列化数据 datab = self.pack(data) - + topic = topic.encode('utf-8') # 通过广播socket发送数据 self.__socketPUB.send_multipart([topic, datab]) @@ -194,7 +198,6 @@ class RpcServer(RpcObject): """注册函数""" self.__functions[func.__name__] = func - ######################################################################## class RpcClient(RpcObject): """RPC客户端""" @@ -276,7 +279,8 @@ class RpcClient(RpcObject): # 从订阅socket收取广播数据 topic, datab = self.__socketSUB.recv_multipart() - + topic = topic.decode("utf-8") + # 序列化解包 data = self.unpack(datab) @@ -295,9 +299,9 @@ class RpcClient(RpcObject): 可以使用topic=''来订阅所有的主题 """ + topic = topic.encode('utf-8') self.__socketSUB.setsockopt(zmq.SUBSCRIBE, topic) - - + ######################################################################## class RemoteException(Exception):