在python中用google协议缓冲区实现Zmq

2024-09-29 17:12:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python实现下面的场景。任何类似的实施需要帮助。在

---------    
Module 1
---------    
Module 2
---------        
Module 3
---------    

我想开发一个带有googleprotocol Buffer的Python框架,这样消息可以通过module1传递到module2再传递到module3,反之亦然。在

我已经创建了协议消息文件。我在module2中创建了一个线程,在其中我还创建了zmq套接字。在

现在我想在python中添加类似于zloop的东西,在这里我可以监听来自模块1或3的消息,然后传递它。在

如有任何建议,我们将不胜感激。在


Tags: 文件框架消息协议buffer场景zmq线程
1条回答
网友
1楼 · 发布于 2024-09-29 17:12:02

pyzmq没有像czmq那样实现自己的eventloop,而是在zmq.eventloop.ioloop中集成了tornado ioloop。在

一个简单的示例:中继并记录incoming上的任何消息,并在outgoing上发送相同的消息:

import zmq
from zmq.eventloop import ioloop, zmqstream
loop = ioloop.IOLoop.instance()

ctx = zmq.Context()

incoming = ctx.socket(zmq.PULL)
incoming.bind('tcp://127.0.0.1:5555')
outgoing = ctx.socket(zmq.PUSH)
outgoing.bind('tcp://127.0.0.1:5556')

sincoming = zmqstream.ZMQStream(incoming, loop)
soutgoing = zmqstream.ZMQStream(outgoing, loop)

def relay(msg):
    print("relaying %s" % "|".join('%r' % part for part in msg))
    soutgoing.send_multipart(msg)

sincoming.on_recv(relay)

loop.start()

{cd4>当一个回调函数到达时,{cd4>会让你运行一个回调函数。在

the pyzmq eventloop docs

相关问题 更多 >

    热门问题