无法使用 STOMP 向 activemq 发送消息
Posted
技术标签:
【中文标题】无法使用 STOMP 向 activemq 发送消息【英文标题】:unable to send message using STOMP to activemq 【发布时间】:2019-09-29 12:15:48 【问题描述】:我正在尝试使用 STOMP 协议向我的 activemq 发送消息,但我收到以下错误:
(limetray) Vaibhavs-MacBook-Air:Desktop vaibhav$ python receiver_topic.py heyhey
Unknown response frame type: ';activemq' (frame length was 11)
Unknown response frame type: '
' (frame length was 2)
Unknown response frame type: ')' (frame length was 2)
Unknown response frame type: '
' (frame length was 1)
Unknown response frame type: 'tcpnodelayenabled' (frame length was 20)
Unknown response frame type: 'sizeprefixdisabled' (frame length was 20)
Unknown response frame type: ' cachesize' (frame length was 11)
Unknown response frame type: '' (frame length was 1)
Unknown response frame type: '
我正在使用下面的 python 脚本来发送消息:
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)
hosts = [('localhost', 61616)]
conn = stomp.Connection(host_and_ports=hosts)
conn.set_listener('', MyListener())
conn.start()
conn.connect('admin', 'admin', wait=True,headers = 'client-id': 'clientname' )
conn.subscribe(destination='A.B.C.D', id=1, ack='auto',headers = 'subscription-type': 'MULTICAST','durable-subscription-name':'someValue')
#conn.subscribe(destination=config['/topic/test'], ack:'auto', 'activemq.subscriptionName':'SampleSubscription')
#conn.subscribe(destination='/topic/testTopic', ack='auto', headers = 'activemq.subscriptionName': 'myhostname')
conn.send(body=' '.join(sys.argv[1:]), destination='A.B.C.D')
time.sleep(2)
conn.disconnect()
用于调用脚本的命令:
python receiver_topic.py heyhey
我认为需要在 activemq.xml 文件中添加一些内容。对此的任何建议都会非常有帮助。
【问题讨论】:
【参考方案1】:从所提供的信息来看,您似乎正在连接到代理上的 Openwire 端口,该端口默认为“61616”,而 STOMP 端口通常为“61613”,所以我的建议是检查 STOMP 连接器绑定的端口并确保您连接到那个。
【讨论】:
以上是关于无法使用 STOMP 向 activemq 发送消息的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Spring WebSocket 向 STOMP 客户端发送错误消息?
如何在 ActiveMQ 中通过 Stomp/JSON 使用 JMS 消息转换
使用 Python+Stomp.py 和 ActiveMQ 发送/接收图像
与 Mule/ActiveMQ 和 C++ Stomp 的客户端通信