3
  1. 我的操作系统是 Windows 7,32 位。

  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. 但是,最后我无法在移动模拟器中收到消息。

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

    非常感谢!

4

1 回答 1

3

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

  1. 简单的判断方法就是订阅#然后查看您收到的主题字符串。
  2. 始终有一个单独的订阅监控代理。例如,对于 WebSphere MQ,我使用 GUI#在测试任何发布之前创建订阅。如果我在 GUI 中而不是在应用程序中获得出版物,则它指向的问题集与我根本没有得到任何东西不同。

对问题的更好描述将包括一些这种鉴别诊断。如果有机会,请重新测试并使用结果编辑问题。

于 2013-02-13T18:06:22.073 回答