我应该在 IoT NAT 设备和服务器之间保持打开一个套接字吗?

物联网 智能家居 系统架构
2021-06-03 05:25:36

我正在使用 MQTT/节点实现灯光控制,它主要由一些元素组成:设备(在 NAT 后面)、服务器(mqtt/broker)、客户端(网络浏览器)

我提出的架构/流程的一部分是:设备需要与服务器打开一个套接字并保持打开状态(而不是相反,因为 NAT),所以每当客户端服务器发送控制命令时服务器通过打开的 websocket将其发送到设备

所以我更广泛的问题是:物联网中的设备隐藏 NAT/服务器连接如何正常处理?

注意:我已经看到很多问题解释了设备写入云然后客户端从中读取的情况,这不需要一直打开套接字(仅在设备写入时)但还没有看到服务器/客户端想要写入设备的情况(从 NAT 外部)

1个回答

它们由连接出并保持正在进行的 TCP 连接的设备处理。

TCP 连接一旦打开就是双向的,因此只要设备通过 NAT 网关打开出站连接,云就可以将信息/命令推回该链接。