我正在尝试将 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&wireformat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&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/