【问题标题】:Proxy in between device and Google IoT Core using MQTT?使用 MQTT 在设备和 Google IoT Core 之间进行代理?
【发布时间】:2021-12-29 20:02:21
【问题描述】:

我想使用 Google IoT Core 来支持我的设备和现有 GCP 堆栈之间的双向通信。问题是,我的一些设备无法连接到 GCP 的 MQTT 网桥,因为它们被阻止直接访问它。通信必须通过我自己的托管服务器进行。事实上,除了我自己的托管服务器之外,不允许某些设备信任入站或出站流量,这完全超出了我的控制范围。

基本上,我发现的所有建议解决方案都建议使用 MQTT over WebSockets。 WebSockets 为我可用的服务器消耗了太多的系统资源,因此基于 WebSockets 的 MQTT 代理是非常不可取的,而且对于我的用例来说甚至可能不可行。这也违背了使用像 MQTT 这样的轻量级、低带宽协议的初衷。

为了让事情变得更复杂,Google IoT Core 文档明确表示它不支持将 MQTT 代理与其 MQTT 桥接。所以托管我自己的 MQTT 服务器似乎是不可能的。

是否甚至可以为这个允许本地、加密、全双工 MQTT 流量的用例创建代理(正向或反向)?如果是这样,实现这一目标的推荐方法是什么?

【问题讨论】:

  • 您是否尝试过查看有关如何设置 MQTT cloud.google.com/iot/docs/how-tos/mqtt-bridge#mqtt_server 的指南或您使用 MQTT Cloud Pub/Sub 代理设置 github.com/GoogleCloudPlatform/cloud-pubsub-mqtt-proxy 的 Github 帖子。
  • @BryanL 是的,我查看了很多 GCP 文档以寻找答案。不幸的是,您链接的 github 存储库不是一个可行的选择。这个项目有一个限制,它必须首先通过我的服务器,因为一些客户端只会被配置为信任我的服务器和设备之间的流量。不允许任何到 Google 服务器的流量。编辑:我已经更改了问题以更好地传达约束。
  • 如果根据您的陈述我的理解是正确的。我假设您当前的设置是混合的,您有本地服务器(您自己的托管服务器)和一个云服务器(现有的 GCP 堆栈),您希望使用 MQTT 使用 Google IoT 桥接它们。您可以在此 github 链接中尝试,在检查此 MQTT 代理已通过 Google IoT 测试后,github.com/nhonchu/mqttClient-for-Legato
  • @BryanL 感谢您的推荐。我会在探索我的选择时对此进行调查。

标签: google-cloud-platform mqtt iot google-cloud-iot


【解决方案1】:

如果您有混合设置,这意味着您有本地服务器和云服务器,并且您希望通过使用 MQTT 使用 Google IoT 桥接它们。

您可以在此 github 链接中尝试,检查此 MQTT broker 已通过 Google IoT 测试。由于 Google IoT 不支持 3rd paryt MQTT 代理。

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 2016-05-13
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多