我有一个很大的疑问,我无法解决。
基本上,我想了解我家中的智能设备如何与他们的服务器通信,或者更好的是,他们的服务器如何在没有任何类型的端口转发的情况下调用它并发送命令(如打开/关闭)。
我知道如果我不想远程访问设备,我需要通过路由器上的端口转发将其暴露在网络上,但是,我没有为这些设备配置任何东西,那么,它们使用什么样的方法?
有人可以让我知道吗?
我有一个很大的疑问,我无法解决。
基本上,我想了解我家中的智能设备如何与他们的服务器通信,或者更好的是,他们的服务器如何在没有任何类型的端口转发的情况下调用它并发送命令(如打开/关闭)。
我知道如果我不想远程访问设备,我需要通过路由器上的端口转发将其暴露在网络上,但是,我没有为这些设备配置任何东西,那么,它们使用什么样的方法?
有人可以让我知道吗?
答案是设备连接到控制服务器并保持此连接。
然后控制服务器使用此连接转发请求。
通常使用诸如 MQTT 之类的消息传递协议,因为它们旨在用于由客户端发起的长时间运行的连接。
这种方法还解决了控制器需要知道设备在哪里的问题。鉴于大多数家庭互联网连接使用动态 IP 地址(如果不是更糟的 CGNAT),这意味着设备需要在每次外部 IP 地址更改时更新控制服务器(它不容易确定)。端口转发还需要所有者具有足够的技术能力来设置它,或者需要启用 UPnP(这在当前的安全环境中可能是一个坏主意)。端口转发还限制了可以部署在给定路由器后面的设备数量。
另请参阅我对智能插头如何工作的回答:domotic IoT 的智能插头如何工作?