Cloud 谷歌云Iot/MQTT/pubsub发送和接收

Cloud 谷歌云Iot/MQTT/pubsub发送和接收,cloud,mqtt,iot,publish-subscribe,Cloud,Mqtt,Iot,Publish Subscribe,在我的应用程序中,消息通过MQTT从设备接收(并发送)到GC。 我想从Pubsub检索(并发送)消息(稍后将该数据放入Firebase RTDB),但我不知道我必须向哪个主题订阅:我的设备发送到/devices/[deviceID]/state,但无法在GC控制台中为此主题创建Sub 谢谢。 J您的设备应该发送到/events MQTT主题,而不是/state 完成此操作后,消息将转到您在保存设备的注册表上设置的发布/订阅主题 因此,当您创建注册表时,您为它分配了一个发布/子主题。为了响应来自设

在我的应用程序中,消息通过MQTT从设备接收(并发送)到GC。 我想从Pubsub检索(并发送)消息(稍后将该数据放入Firebase RTDB),但我不知道我必须向哪个主题订阅:我的设备发送到/devices/[deviceID]/state,但无法在GC控制台中为此主题创建Sub

谢谢。
J

您的设备应该发送到/events MQTT主题,而不是/state

完成此操作后,消息将转到您在保存设备的注册表上设置的发布/订阅主题

因此,当您创建注册表时,您为它分配了一个发布/子主题。为了响应来自设备的消息,您需要在某个位置创建该主题的订阅。最简单/最快捷的设置方法是使用一个谷歌云函数,在发布/订阅消息时触发。因此,对于设备发送的每一条消息,GCF(云功能)都将启动

如果有大量消息传入(我的意思是,在短时间内有数千条),那么您可能需要研究其他内容,比如云运行容器,它运行的进程订阅发布/订阅主题,并在传入时对其进行处理

换一种方式,云->返回到您的设备,您将看到IoT核心管理SDK。因此,无论启动消息的是什么,您都需要实现IoT核心管理SDK。根据您所做的,您还需要考虑配置消息与命令。

配置消息保存在云中。因此,即使发送消息时设备处于脱机状态,最终也会在连接到云端时获得消息。命令是火和遗忘。一旦你发送了它,它就消失了,因此如果设备没有在线并且在发送时没有监听,消息就会丢失。折衷是命令的速度要快得多

我已经编写了两个关于如何使用Raspberry Pis和Python实现这些功能的分步教程,第一个在这里:

这一切都是关于连接到云,所以你可能已经通过了它,但我在底部链接到下一个,这是通过从云发送消息回设备,听起来会很有帮助