【发布时间】:2023-10-12 00:22:01
【问题描述】:
我正在尝试将本地 mosquitto(在树莓派上)连接到某个云代理,以便我可以发送数据并使用该数据控制某些设备。我尝试使用 Cloudmqtt 和 dioty,但没有成功。在 cloudmqtt 的情况下,我被告知 mosquitto.conf 文件一切正常,对于 dioty,我被告知它使用不支持桥接的 Mosca 代理(我被告知我指的是 cloudmqtt 和 dioty支持服务)。有谁知道一些可以桥接到本地 mosquitto 的远程代理,有人已经尝试过吗?
我考虑使用一些 IOT 平台来执行此操作,但我已经阅读了该平台使用定价,我这样做是为了学习和爱好,所以在我学习如何使用它之前,我想保持免费帐户。
编辑: 我正在使用 mosquitto 1.4.5,mosquitto.conf 文件如下:
#Place your local configuration in /etc/mosquitto/conf.d/
#
#A full description of the configuration file is at
#/usr/share/doc/mosquitto/examples/mosquitto.conf.example
connection cloudmqtt
address mnumber.cloudmqtt.com:port
topic zaESP8266 in 0
topic ESP8266 out 0
try_private true
notifications false
start_type automatic
remote_usename username_of_the_user_on_cloudmqtt
remote_password password_of the_user_on_cloudmqtt
pid_file /var/run/mosquitto.pid
persistance true
persistance_location /var/lib/mosquitto/
我之所以选择 Cloudmqtt 作为在线蚊子代理是因为我认为本地蚊子 远程蚊子桥应该可以工作。我可以使用笔记本电脑或手机等客户端,并使用它们与本地代理发布和订阅消息。这样,即使我无法访问互联网,我也可以让本地代理与本地客户进行交互。
编辑: 我配置了 mosquitto.conf 文件,以便可以与 test.mosquitto.org 桥接,我添加了以下几行:
connection test
address test.mosquitto.org
topic in_topic in 0
topic out_topic out 0
try_private false
notifications false
bridge_attempt_unsubscribe true
现在,在一个终端中我可以使用mosquitto_sub -t in_topic,而在另一个终端中我可以使用mosquitto_pub -h test.mosquitto.org -t in_topic -m message。我在使用 mosquitto_sub 命令的第一个终端中收到该消息。因此,在此之后,我认为桥梁运作良好是正确的。但我无法弄清楚桥接到 cloudmqtt 似乎有什么问题。
Cloudmqtt 使用 mosquitto mqtt 代理,dioty 从 mosquitto 交叉到 Mosca mqtt 代理,不支持桥接但显然具有更好的可扩展性(此信息已由 dioty 客户服务提供给我)
编辑: 我使用 Node-RED 解决了这个桥接问题。只需添加一个 mqqt 输入并将其配置为本地 mosquitto 代理(端口 1883)和两个 mqtt 输出,用于 cloudmqtt 和 DIoTY。
在cloudmqtt上,注册账号后(萌猫免费),进入控制面板添加cloudmqtt实例,cloudmqtt会提供用户名和密码。在 Node-RED 中,通过添加服务器、用户名、密码和端口,为 cloudmqtt 实例配置一个 mqtt 输出。
在 DIoTY 上,您还需要创建帐户或使用 google 或其他帐户登录。当您登录时,您将获得用户名,这将是您的邮件帐户以及其他信息,例如主机和端口,密码将发送到电子邮件帐户。因此,要在 Node-RED 中使用它,您需要将主机(服务器)、用户名、密码和端口添加到 mqtt 输出。当您订阅或发布消息时,请记住您有根主题,例如:
/your_mail_account/主题
无论是订阅某个主题还是发布某些消息,您都需要将根主题添加为某种前缀。
完成此配置后,您需要部署更改,就是这样。所以对于这种我使用了 Node-RED。
【问题讨论】:
标签: cloud local mqtt mosquitto bridge