IoT Core 发布到另一个注册表上的主题

IoT Core publish to topic on another registry

我想做的是将消息从一个注册表中的设备发布到另一个注册表中的设备。

我发现你只能发布到你的设备所在的注册表中的主题,如果你尝试发布到另一个注册表中的主题,你会得到一个 EOFException 并且你会断开与MQTT 服务器。

我尝试的流程是我有 registry 的移动设备(电话),它们有自己的主题来做事,但它们也需要与 hub registry 通信与物联网设备(gets/updates 设备信息)通信,这些设备也有自己的 IoT registry

正如我所说,我可以毫无错误地将消息发布到我的注册表中的主题,但是一旦我尝试在我的注册表之外执行此操作,我就会收到错误消息。

没有办法跨注册中心通信吗?

如果不能进行跨注册,"standard"通过不同主题在设备之间进行通信的方法是什么?

您可以使用 Cloud Functions 来实现您的目标,这些功能通过 Cloud IoT Core 和 PubSub 在注册表 A 中处理接收到的数据,然后将此数据作为配置消息发送到注册表 B 上的设备。

流程将类似于: 设备 1 > MQTT 服务器注册表 A > Pub/Sub 主题注册表 A > 云功能 > HTTP 配置消息到 > 注册表 B > MQTT 服务器注册表 B > 设备 2

您可以在本教程中看到我撰写了有关 Cloud IoT Core 的文章,并展示了如何向设备发送配置消息。在您的情况下,您唯一需要的更改是配置消息将转到不同注册表中的设备。

Link 到教程:https://medium.com/google-cloud/gps-cellular-asset-tracking-using-google-cloud-iot-core-firestore-and-mongooseos-4dd74921f582

发送配置消息的代码部分,但在我的代码中,注册表是一个常量变量:https://github.com/alvarowolfx/asset-tracker-gcp-mongoose-os/blob/master/functions/index.js#L22

希望对您有所帮助。