使用aiozmq流的简单发布/订阅

2024-04-29 07:02:44 发布

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

我正在尝试使用aiozmq流进行简单的发布/订阅(出于某些原因,我不想使用aiozmq rpc),但没有成功:

出版物

# coding: utf-8
import asyncio
import time

import aiozmq
import zmq


async def do():
    stream = await aiozmq.stream.create_zmq_stream(
        zmq_type=zmq.PUB,
        bind='tcp://127.0.0.1:5556',
    )
    while True:
        await asyncio.sleep(1)
        msg = [str(time.time()).encode()]
        print('write ', msg)
        stream.write(msg)

loop = asyncio.get_event_loop()
loop.run_until_complete(do())

副总裁

^{pr2}$

执行时出版物公司名称:

python pub.py      
write  [b'1534927086.914483']
write  [b'1534927087.9154818']
write  [b'1534927088.9164672']

然后执行副总裁公司名称:

python sub.py
wait ...

我错过了什么?在


Tags: import名称loopasynciostreamtime公司msg
1条回答
网友
1楼 · 发布于 2024-04-29 07:02:44

只是错过了sub.py中的传输订阅行。有一个工作副总裁公司名称:

# coding: utf-8
import asyncio

import aiozmq
import zmq


async def do():
    stream = await aiozmq.stream.create_zmq_stream(
        zmq_type=zmq.SUB,
        connect='tcp://127.0.0.1:5556',
    )
    stream.transport.subscribe(b'')

    while True:
        print('wait ...')
        msg = await stream.read()
        print('received ', msg)

loop = asyncio.get_event_loop()
loop.run_until_complete(do())

生产商:

^{pr2}$

相关问题 更多 >