gpt4 book ai didi

azure - Azure 云中的 MQTT 代理

转载 作者:行者123 更新时间:2023-12-04 05:37:27 28 4
gpt4 key购买 nike

我有一个后端设备,其 MQTT 客户端连接到开源 MQTT 代理 (Mosquitto)。另一方面,我有许多前端设备(PC、平板电脑、移动设备),其 GUI 应用程序也连接到代理。因此,这里 Mosquitto 充当后端设备和前端设备之间的通信点,仅在它们之间转发消息。有时传输的数据量可能非常高(例如 1 MB/分钟)。

一台后端设备+多台前端设备为一次安装。我需要为同时运行的数千个此类安装准备基础设施。所以我的服务需要具有很强的可扩展性。我的公司使用 Azure 云解决方案,所以我已经开始学习这个解决方案,但我必须承认我有点困惑。我读到我需要使用 IoT 中心,但它需要 MQTT 网关才能与 MQTT 设备通信。另一方面,如果我理解得很好,网关需要在某个虚拟机上运行,​​所以在这里我失去了解决方案的可扩展性。我对吗?现在,如果我需要支持 100k 或 500k 设备,那么我将需要另一个 VM?另一件事是我需要将所有这些与一些 Web 服务集成(用于管理后端和前端设备),因此我需要在 Web 服务和 MQTT 代理之间建立一些连接...

在我开始使用 Azure 之前,我想象我将简单地启动一个 MQTT 代理服务,神奇的是它将具有高度可扩展性,并且能够为数千台设备提供服务。

谁能告诉我怎么咬它?

最佳答案

Azure IoT 中心现在可以原生对话 MQTT。不再需要协议(protocol)网关。 https://azure.microsoft.com/en-us/documentation/articles/iot-hub-mqtt-support/

如果您刚刚花费了最后一个小时尝试形成 MQTT 用户名和密码,这将对您有很大帮助: https://github.com/Azure/azure-content/blob/master/articles/iot-hub/iot-hub-devguide.md#example

Example:

Username (DeviceId is case sensitive): iothubname.azure-devices.net/DeviceId

Password (Generate SAS with Device Explorer): SharedAccessSignature sr=iothubname.azure-devices.net%2fdevices%2fDeviceId&sig=kPszxZZZZZZZZZZZZZZZZZAhLT%2bV7o%3d&se=1487709501

在 Windows 上使用 PahoMQTT.fx 进行测试。我无法使用 mosquitto 进行身份验证,并且我已经付出了合理的努力,甚至尝试使用 stunnel 以防 mosquitto 的 TLS 支持无法解决问题。 Mosquitto 可能无法正确处理长密码或类似的情况。它会引发身份验证错误。转义 %& 没有帮助。

如果有人让 Mosquitto 与 Azure IoT 中心配合使用,请睁开眼睛。

...有人做到了(谢谢评论中的蒂莫西)

Mosquitto_pub works, I verified by monitoring with Device Explorer Twin. Example:

mosquitto_pub -h IOTHubACMxxx.azure-devices.net
-p 8883
--cafile "C:\Users\jlaird\Documents\dev\azureca.crt"
-t devices/eACM1/messages/events/
-m "john says hello to azure from mosquitto"
-i eACM1
-u IOTHubACMxxx.azure-devices.net/eACM1/?api-version=2018-06-30
-P "SharedAccessSignature sr=IOTHubACMxxx.azure-devices.net&sig=obfuscate&se=1593013589&skn=device"

关于azure - Azure 云中的 MQTT 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33693402/

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