首页 > 解决方案 > Python Stomp 到 ActiveMQ 的连接有错误的主题名称

问题描述

我正在尝试对 ActiveMQ 服务器进行 Python + Stomp订阅。我正在针对本地主机上的 ActiveMQ 服务器进行测试。一切似乎都正常,除了 Topic 的订阅名称XYZ被命名ActiveMQ.Advisory.Consumer.Queue.XYZ,并且我要连接的队列(由 java 客户端创建)被命名为only XYZ

有没有办法订阅这个“短”名称队列?

import stomp

QUEUE_NAME='XYZ'

class MyListener(stomp.ConnectionListener):
    def on_error(self, headers, message):
        print('received an error "%s"' % message)
    def on_message(self, headers, message):
        print('received a message "%s"' % message)

headers = {}
conn = stomp.Connection( )
conn.set_listener('127.0.0.1:61616', MyListener())
conn.start()
conn.connect('admin', 'admin', wait=True)

conn.subscribe(destination=QUEUE_NAME, id=2, ack='auto')

time.sleep(6660)
conn.disconnect()

本地 ActiveMQ 控制台显示“主题”: ActiveMQ 主题面板的屏幕截图

而真正的服务器有一个短名称的队列: 正确名称

标签: pythonactivemqstomp

解决方案


这看起来像是正常的代理行为,以支持“咨询消息”。它不应该对您的应用程序产生任何直接影响。有关更多详细信息,请参阅有关此主题的 ActiveMQ 文档


推荐阅读