gpt4 book ai didi

cloud - 将本地蚊子桥接到云代理

转载 作者:行者123 更新时间:2023-12-01 09:40:03 25 4
gpt4 key购买 nike

我正在尝试将本地 mosquitto(在树莓派上)桥接到某个云代理,以便我可以发送数据并使用该数据控制某些设备。我尝试使用 Cloudmqtt 和 dioty,但没有成功。在 cloudmqtt 的情况下,我被告知 mosquitto.conf 文件一切正常,对于 dioty,我被告知它使用不支持桥接的 Mosca 代理(我被告知我指的是 cloudmqtt 和 dioty支持服务)。有谁知道可以桥接到本地 mosquitto 的远程代理,有人已经尝试过吗?

我考虑过使用一些物联网平台来做到这一点,但我已经读过该平台使用定价,我这样做是出于学习和业余爱好的目的,所以在我学习如何使用它之前,我想继续免费帐户。

编辑:我正在使用 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 代理的原因是因为我认为本地 mosquitto <--> 远程 mosquitto 桥应该可以工作。而且我可以使用笔记本电脑或手机等客户端,并使用它们向本地代理发布和订阅消息。这样即使我无法访问互联网,我也可以让本地经纪人与本地客户互动。

编辑:我配置了 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/topic

无论是订阅某个主题还是发布一些消息,您都需要添加根主题作为某种前缀。

完成此配置后,您需要部署更改,就是这样。因此,对于这种类型,我使用了 Node-RED。

最佳答案

我正在使用 windowsc9.io linux console 测试。


I find out that https://www.cloudmqtt.com/docs-faq.html#TLS_SSL

cloudmqtt.com server cert is signed by Comodo, which has the AddTrust CA as root. Most OSs comes with it by default, so can you point to your default trust/CA store.

获取AddTrust CA证书的方法

方法01

  1. Click Start, click Start Search, type mmc, and then press ENTER.

  2. On the File menu, click Add/Remove Snap-in.

  3. Under Available snap-ins, click Certificates,and then click Add.

  4. Under This snap-in will always manage certificates for, click Computer account, and then click Next.

  5. Click Local computer, and click Finish.

  6. If you have no more snap-ins to add to the console, click OK.

  7. In the console tree, double-click Certificates.

  8. Click to Trusted Root Certification Authorities > Certificates store.

  9. Right-click AddTrust External CA Root

  10. Click Export to Export the certificates and follow the steps in the Certificate Export Wizard, Export File Format choose Base-64 encoded X.509(CER).

  11. Save the ca.cer to **C:\Program Files\mosquitto**

方法02

I get the cert here : www.tbs-certificates.co.uk/FAQ/en/357.html

AddTrust CA Root cert : http://www.tbs-x509.com/AddTrustExternalCARoot.crt

  1. Copy AddTrustExternalCARoot.crt to C:\Program Files\mosquitto\
  2. Double click AddTrustExternalCARoot.crt, Install Certificate...

将 Mosquitto 桥接到 CloudMQTT

window

I'm using mosquitto 1.4.11, windows, mosquitto.conf file I use difference name(cloud.conf), It look like this:

connection cloudmqtt
address xxx.cloudmqtt.com:<ssl-port>
remote_username <username_of_the_user_on_cloudmqtt>
remote_password <password_of the_user_on_cloudmqtt>
remote_clientid cloud.mqtt
bridge_protocol_version mqttv311
try_private true
notifications false
start_type automatic
topic # both 2
# Method 01
bridge_cafile ca.cer
# Method 02
#bridge_cafile AddTrustExternalCARoot.crt
bridge_insecure false
cleansession false
local_clientid local.mosquitto

Run cmd.exe

C:\Program Files\mosquitto> mosquitto.exe -c cloud.conf -v

1490627692: mosquitto version 1.4.11 (build date 20/02/2017 23:24:29.40) starting
1490627692: Config loaded from cloud.conf.
1490627692: Opening ipv6 listen socket on port 1883.
1490627692: Opening ipv4 listen socket on port 1883.
1490627692: Bridge local.mosquitto doing local SUBSCRIBE on topic #
1490627692: Connecting bridge cloudmqtt (xxx.cloudmqtt.com:<ssl-port>)
1490627692: Bridge cloud.mqtt sending CONNECT
1490627693: Received CONNACK on connection local.mosquitto.
1490627693: Bridge local.mosquitto sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 2)
1490627693: Received SUBACK from local.mosquitto
...

Now, my local mosquitto broker bridged cloudmqtt.com in 2 way communication.


Linux

Simple try at c9.io linux console using method 02 (AddTrustExternalCARoot.crt), the output as below.

$ mosquitto -c cloud.conf -v -p 8080
1490634446: mosquitto version 1.4.11 (build date Fri, 03 Mar 2017 15:11:39 +0000) starting
1490634446: Config loaded from cloud.conf.
1490634446: Opening ipv4 listen socket on port 8080.
1490634446: Opening ipv6 listen socket on port 8080.
1490634446: Bridge c9.mosquitto doing local SUBSCRIBE on topic #
1490634446: Connecting bridge cloudmqtt2c9 (xxx.cloudmqtt.com:<ssl-port>)
1490634446: Connecting bridge cloudmqtt2c9 (xxx.cloudmqtt.com:<ssl-port>)
1490634446: Bridge cloud.mqtt.c9 sending CONNECT
1490634446: Received CONNACK on connection c9.mosquitto.
1490634446: Bridge c9.mosquitto sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 2)
1490634447: Received SUBACK from c9.mosquitto
...

树莓派

复制 AddTrustExternalCARoot.crt 到与 cloud.conf 相同的目录

connection pi2cloudmqtt
address xxx.cloudmqtt.com:<ssl-port>
remote_username <username_of_the_user_on_cloudmqtt>
remote_password <password_of the_user_on_cloudmqtt>
remote_clientid cloud.mqtt.pi
bridge_protocol_version mqttv311
try_private true
notifications false
start_type automatic
topic # both 2
# Method 01
#bridge_cafile ca.cer
# Method 02
bridge_cafile AddTrustExternalCARoot.crt
bridge_insecure false
cleansession false
local_clientid pi.mosquitto

$ mosquitto -c cloud.conf -v

关于cloud - 将本地蚊子桥接到云代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34255907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com