在zeromq/python中使用pyobj子函数时设置主题

在zeromq/python中使用pyobj子函数时设置主题,python,zeromq,Python,Zeromq,我一直在看zeromq,我注意到有socket.send_pyobj()和socket.recv_pyobj()函数 我的问题是,如果他们称之为PUB/SUB,人们会如何设置主题。在我看到的使用常规发送的示例中,始终是两个字符串,中间有空格,第一个字符串将被视为主题 topic = 'test' msg = 'hello' socket.send("%s %s" % (topic,msg)) 有办法吗?或者我应该使用不同的端口来制作不同的主题?NVM。我知道怎么做了。如果我想将主题和消息视为一

我一直在看zeromq,我注意到有socket.send_pyobj()和socket.recv_pyobj()函数

我的问题是,如果他们称之为PUB/SUB,人们会如何设置主题。在我看到的使用常规发送的示例中,始终是两个字符串,中间有空格,第一个字符串将被视为主题

topic = 'test'
msg = 'hello'
socket.send("%s %s" % (topic,msg))

有办法吗?或者我应该使用不同的端口来制作不同的主题?

NVM。我知道怎么做了。如果我想将主题和消息视为一个整体并过滤对象,我应该使用send_multipart

为了出版商

   self.socket.send_multipart([b'status',pickle.dumps(msg2)])
为了收信人

    socket.setsockopt(zmq.SUBSCRIBE, 'status')
    [topic,msg] = socket.recv_multipart()
    msg2 = pickle.loads(msg)
    print msg2['game']

我不知道为什么,但如果你用他们的例子。它显示我应该在socketopt上执行b'status(状态),但如果我执行该操作,它不会过滤wya。

请接受您的答案,以便其他人知道您的问题已解决。