我的问题很简单:现在这段代码向subject chan.01.msg发送空消息,并获取当前正在广播或打印nats: timeout的消息。总之,这个请求消息也会在subject上显示(类似:Received a message on chan.01.msg _INBOX.<hash_my>.<salt_up>: b''),在这里并不可取。我确实在回调中过滤了它,但我真的觉得这样做是错误的。我能用想要的主题来传达信息吗?
async def msgcb(msg):
"""
Message callback function
"""
subject = msg.subject
reply = msg.reply
data = msg.data
if len(data) > 0:
print(f"Received a message on {subject} {reply}: {data}")
logging.debug("Prepare to subscribe")
sub = await nc.subscribe(subject="chan.01.msg", cb=msgcb)
logging.debug("loop process messages on subject")
while True:
await asyncio.sleep(1)
try:
resp = await nc.request('chan.01.msg')
print(resp)
except Exception as e:
print(e)发布于 2022-08-23 04:52:03
您订阅的主题与您要发布的主题相同,因此在发送请求时自然会收到消息。为了避免接收相同客户端产生的消息,您可以在connect上使用no_echo选项。
https://stackoverflow.com/questions/73363798
复制相似问题