【问题标题】:Unable send a message with stompclient无法使用 stompclient 发送消息
【发布时间】:2014-06-27 03:03:57
【问题描述】:

我正在尝试使用 pythons stompclient 向 activemq 发送消息。 https://bitbucket.org/hozn/stompclient/wiki/User%20Documentation 如果有更好的图书馆,我愿意接受建议。 如果我更改为 ip 或端口,它将无法连接,所以我假设连接正常。运行此代码时没有错误,只是我在队列中看不到任何消息。我认为目标路径可能是它失败的地方 activemq 队列的 PhysicalName 是这种模式'abc.queue_name'。 我已经尝试了以下目的地

/queue/abc/queue_name
/queue/abc.queue_name
abc.queue_name

非常感谢任何建议。 谢谢

from stompclient import PublishClient
client = PublishClient('IP', 53680)

response = client.connect('defaultPassword', 'defaultUser')
reponse1 = client.send('/queue/abc/queue_name', 'bla')
time.sleep(5)

【问题讨论】:

  • 您在运行此代码时是否遇到任何错误?

标签: python-2.7 activemq stomp


【解决方案1】:

您是否检查过网络控制台以查看您的队列是否是由发送创建的?

您还应该尝试在发送中添加请求 ID 并等待响应,这将确保代理有足够的时间在您的客户端代码断开连接之前获取发送的数据。

您可能还想检查代理日志,以查看是否记录了任何错误或任何安全警告,以防用户没有发布权限。

【讨论】:

  • 感谢您的回复。我可以通过 web 控制台查看队列,并且可以通过 web 控制台将消息发送到队列。 activemq 日志显示此警告 2014-05-09 14:06:34,928 |警告 |传输连接到:tcp://IP:PORT 失败:java.io.IOException:Java 堆空间 | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ NIO Worker 44146
  • 我猜你要么已经耗尽了机器上的资源,要么你试图将 STOMP 客户端连接到代理上的 OpenWire 端口。
  • 资源很好,因为我可以通过 web 控制台发送消息我如何知道 OpenWire 端口是否属于这种情况
【解决方案2】:

将此属性添加到 activemq.xml 文件中,我现在可以通过 Web 控制台看到队列中的消息。

<transportConnector name="stomp"  uri="stomp://0.0.0.0:61613"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2012-10-03
    • 1970-01-01
    • 2023-04-05
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多