Java客户端无法从Android上的Mosquitto接收消息

时间:2013-02-13 17:55:29

标签: android push-notification mq mqtt

  1. 我的Os是Windows 7,32bit。

  2. 我安装了mosquitto-1.1.2-install-win32.exe。

  3. 我不会更改mosquitto.conf文件,因此没有主题前缀设置。

  4. 使用Mosquitto订阅主题(订阅窗口):

    mosquitto_sub.exe -q 2 -t mytopic
    OR mosquitto_sub.exe -q 2 -t # 
    
  5. 使用Mosquitto发布类似(发布窗口)的主题:

    mosquitto_pub.exe -q 2 -t mytopic -m “hello″
    
  6. 然后在订阅cmd窗口中,我可以收到“hello”

  7. 我一直在关注Dale Lane的博客和“Android MQTT示例项目”以访问Mosquitto。

    java client(MQTTDemo.java): 
    //i use mobile emulator
    editor.putString(“broker”, "10.0.2.2″); 
    editor.putString(“topic”, "mytopic”); 
    //or editor.putString(“topic”, “#”); '#' match any topic
    
  8. 我在connectToBroker()中测试MQTTService.java,连接正常。

  9. 我与Mosquitto再次发布了“mytopic”主题。

  10. 但是,最后我无法在移动模拟器中收到消息。

    有人知道为什么或任何其他方法吗?

    非常感谢!

1 个答案:

答案 0 :(得分:3)

有时取决于代理的配置方式。 Mosquitto代理有一些方法可以在每个通道的基础上指定主题前缀。在其他时候,需要将订阅主题指定为通用主题。我不确定这些是否适用于您的情况,但是有简单的诊断方法,并且您没有描述使用它们,因此我将提供它们作为起点。

  1. 简单的方法就是订阅#,然后查看您收到的主题字符串。
  2. 始终有一个单独的订阅监控代理。例如,使用WebSphere MQ,我在测试任何发布之前使用GUI创建对#的订阅。如果我在GUI中获得该出版物而不是应用程序,那么它指的是一个不同的问题集,而不是我什么都没有得到。
  3. 对问题的更好描述将包括一些差异诊断。如果您有机会,请重新测试并编辑带有结果的问题。