我要做的是从一个注册表中的设备发布消息到另一个注册表中的设备。
我发现,您只能发布到设备所在的注册表中的主题,如果尝试发布到另一个注册表中的主题,则会得到一个EOFException,然后从MQTT服务器断开连接。
我想要的流程是,我有一个移动设备(电话)的registry,它有自己的主题可做,但它们也需要与hub registry通信,后者与IoT设备(获取/更新设备信息)通信,后者也有自己的IoT registry。
正如我所说的,我可以将消息发布到注册表中的主题,而不会出错,但是一旦我试图在注册表之外发布消息,我就会得到一个错误。
没有办法进行跨注册表的通信吗?
如果您不能跨注册表,设备之间通过不同主题进行通信的“标准”方式是什么?
发布于 2018-03-15 20:51:51
您可以使用云函数在注册表A中处理接收到的数据,即云、IoT、核心和PubSub,然后将这些数据作为配置消息发送到注册表B上。
流程如下:设备1> MQTT服务器注册表A> Pub/Sub主题注册表A>云函数> HTTP消息到> Registry > MQTT服务器注册表B>设备2
在本教程中,您可以看到我写过关于云IoT核心的文章,并展示了如何向设备发送配置消息。在您的情况下,唯一需要的更改是配置消息将转到另一个注册表中的设备。
发送配置消息的代码部分,但在我的代码中,注册表是一个常量变量:https://github.com/alvarowolfx/asset-tracker-gcp-mongoose-os/blob/master/functions/index.js#L22
希望这能帮到你。
https://stackoverflow.com/questions/49308449
复制相似问题