java - MQTT Android 未连接到 ActiveMq

标签 java android activemq mqtt

我正在尝试将 Android 应用程序连接到 ActiveMQ 服务器。 我正在使用 ActiveMQ,因为我的服务器已经使用 JMS 与 ActiveMQ 服务器对话,因此将 android 客户端连接到 JMS 代理对我来说非常有益。

我在 ActiveMQ 中启用了 MQTT,遵循此页面:http://activemq.apache.org/mqtt.html 我下载的任何 MQTT 客户端(IBM MQTT 客户端或 Paho MQTT 客户端)都存在一个小问题,无法识别“mqtt://”url 前缀,因此我尝试改用 tcp。这就是 activemq.xml 中的配置:

<transportConnectors>
    <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>
    <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>           
    <transportConnector name="mqtt" uri="tcp://0.0.0.0:1883"/>
</transportConnectors>

当我尝试使用任何 mqtt 客户端示例进行连接时,例如:http://mosquitto.org/2011/11/android-mqtt-example-project/我无法连接到 ActiveMQ,并且在服务器端出现错误:

2013-09-05 12:34:17,550 | WARN  | Transport Connection to: tcp://192.168.0.111:42148 failed: java.io.IOException: Unknown data type: 77 | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///192.168.0.111:42148@1883

有什么建议吗? 谢谢!

最佳答案

您没有正确配置 MQTT transportConnector。试试这个:

<transportConnectors>
  <transportConnector name="mqtt" uri="mqtt://localhost:1883"/>
</transportConnectors>

请注意,您使用了 TCP uri 前缀。

关于java - MQTT Android 未连接到 ActiveMq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18632968/

相关文章:

java - 如何从 Hibernate (Java) 中的projectionCriteria 中删除所有 SubcriteriaList - 防止使用左连接

android - 禁用自动关闭应用程序 Android

java - ActiveMQ客户端: share connection between sessions?

activemq - 使用 IBM 客户端连接到 ActiveMQ 代理

spring-boot - Spring boot - 如何使用故障转移 URL 连接到外部 ActiveMQ 主/从集群

java - OSGi:当某个服务可用时,DS 服务消费者是否会同步收到通知

java - 要包含在 Activity 中的 Android 颜色选择器

java - 导入 SSL 证书时出错 : Not an X. 509 证书

Android - Gradle : error: package does not exist

android - 在 Android 应用程序中显示图形(不是图表)