AWS IOT 设备网关如何提供双向通信?

How does AWS IOT's device gateway provide bi-directional communication?

AWS IOT 的core features 之一是通过设备网关提供双向通信。知道实现是私有的,任何人都可以从概念上解释网关如何能够将消息推送到我本地网络上的设备吗?该服务是否保持与设备的持久连接?

要添加上下文,根据我在使用 AWS IOT 之前的经验,如果我想与我的嵌入式应用程序通信(使用 HTTP),我需要设置端口转发,所以我对为什么设备网关可以无需此步骤即可工作。

AWS IoT,使用 Pub/Sub 模式提供设备和消息代理之间的通信。

Publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers, but instead categorize published messages into classes without knowledge of which subscribers, if any, there may be. Similarly, subscribers express interest in one or more classes and only receive messages that are of interest, without knowledge of which publishers, if any, there are.

更多关于此模式的信息:https://msdn.microsoft.com/en-us/library/ff649664.aspx

AWS IOT 是通过 MQTT 实现的,MQTT 连接是从设备到网关(代理)的永久 TCP 连接,这意味着当需要向设备发送消息时使用此连接。

因为连接是从设备到网关发起的,所以不需要设置任何端口转发(除了由家庭路由器自动处理的 NAT)