【发布时间】:2015-07-27 11:55:32
【问题描述】:
请帮我解决这个问题。我在这上面花了两天时间,但没有成功。
我正在使用 Paho-Mqtt python 客户端示例。我的 digitalocean debian 服务器上也有 HiveMq mqtt 服务器。 如果我在笔记本电脑或 linux Debian 机器上运行,python 中的客户端示例代码可以连接并订阅 digitalocean 服务器。但。这是但是。当我在 digitalocean 服务器(hivemq mqtt 服务器所在的位置)上运行客户端时,它只能连接而不能订阅!我同时使用了 localhost 和服务器 IP,但仍然没有运气。
但是,在 digitalocean 服务器(以及 hivemq mqtt 服务器)上运行的相同客户端代码可以成功连接和订阅外部服务器,例如 m2m.eclipse.org。
我怎么知道它不是订阅而是连接?好吧,它在连接回调时返回 RC:0,但在订阅回调时不返回任何内容。 (它应该返回“订阅:1”等)
总结: Clinet 与服务器在同一台机器上运行时可以连接但不能订阅。
【问题讨论】:
-
您能否提供任何实际的详细信息,例如代码或您正在做什么,以便有人可以提供帮助?目前这是一个非常模糊的问题。
-
@ralight 我正在使用 paho 项目中提供的 sub.py 示例。我根本没有改变代码(除了ip地址和主题)。
-
如果 sub.py 上的 on_log 函数没有为您提供任何线索,那么您必须查看 HiveMq 日志。
-
您可以将您正在使用的代码添加到问题中吗?您使用哪个版本的 HiveMQ?
-
我使用的是最新版本的 HiveMQ。我最终删除了 HiveMQ 并改用 Mosquitto。现在一切都解决了。血腥的 HiveMQ 是导致此问题的原因。它浪费了我的 2-3 天......谢谢你们的帮助
标签: debian mqtt digital-ocean paho hivemq