如何更改 Google IoT Core 的 MQTT 主机名

Posted

技术标签:

【中文标题】如何更改 Google IoT Core 的 MQTT 主机名【英文标题】:How to change MQTT hostname for Google Iot Core 【发布时间】:2018-04-26 23:38:15 【问题描述】:

我正在使用 google-cloud-iot-core 开发 iot 设备,但我希望允许 3rd 方支持,所以我想更改 mqtt 的主机名,该怎么做?

提前致谢

【问题讨论】:

需要更多关于您到底想要做什么的详细信息? MQTT 主机名,意思是 mqtt.googleapis.com ?那个主机名?如果不将消息发送到该端点,您将不再使用 IoT Core。 :) 这很好,但我需要知道你想做什么。 是的 mqtt.googleapis.com 主机名,我想更改它。我想这样做是为了将 IoT Core 暴露给 3rd 方应用程序,他们可以在其中发布/订阅,它会触发 Cloud Functions 【参考方案1】:

如果您更改该端点,那么您将不再与 IoT Core 对话。它是不可配置的,因为这是与服务对话的端点。

您可以在其他地方设置自己的 MQTT 服务器(可以在 GCE 或 GKE 中使用自定义容器进行)并根据需要设置主机名,然后设置自己的代理以获取 MQTT 负载并创建 Pub/Sub 消息,或者我想甚至充当 IoT Core 本身的转发代理(尽管安全性和身份验证可能会有点奇怪)。

或者您甚至可以直接转到 Pub/Sub。这一切都取决于您的需要。

正如我所提到的,更改 IoT Core 的主机名(mqtt.googleapis.com)意味着您不再使用 IoT Core。没有其他方法可以访问 IoT Core 的通信代理部分来创建 Pub/Sub 消息等。如果您不使用 IoT Core 端点(主机名),那么您将自己创建 Pub/来自 IoT 设备数据的子消息。

【讨论】:

我尝试了代理,但正如您提到的 ssl 和 auth 存在问题,是否有更简单的方法将流量重新路由到 mqtt.googleapi.com。只需转发它,而不是使用 Pub/Sub 创建代理。任何文档或博客? 不适用于这个特定的用例,不幸的是没有。我们还没有完全支持通过另一个设备与 IoT Core 通信的设备。我们计划了一些示例/文档,但还没有写出来。公平地说,我们甚至还不是 GA(仍然是公开测试版)。 :) 他们会来的,只是还没有。 拥有它们真是太好了,这样我们就可以使用谷歌平台添加对第三方应用程序集成的支持

以上是关于如何更改 Google IoT Core 的 MQTT 主机名的主要内容,如果未能解决你的问题,请参考以下文章

Google IoT Core:我如何知道消息来自哪个设备?

如何将传感器数据(例如来自 DHT11 传感器的温度数据)发送到 Google Cloud IoT Core 并存储它

在与 Google Cloud IoT Core 交互时限制用户对 IoT 项目的访问

Google Cloud IoT Core 和 Pubsub 定价?

Google Core IoT 设备离线事件或连接状态

Google IoT Core MQTT 发布错误