Q1. 那么如果路由器没有网络,是不是就无法通信呢?
Q2。 如果是,为什么会发生这种情况?
因为家里有智能小家电,一楼主路由器关闭后,二楼路由器无网络(断网),但二楼路由器上的wifi还开着。 我的手机此时也连接上了WiFi,为什么? 控制也连接到同一个WiFi的智能家电?
在老王眼中,手机APP与智能家电的通信如下:
手机和智能家电连接到Wi-Fi路由器。 它们的IP地址在同一网段。 可以使用ARP广播来解析彼此的MAC地址,然后他们就可以愉快地携手通信了。
手机APP与智能家电真正的通讯是这样的:
智能家电开机后,会根据出厂预设的服务器域名/IP地址,尝试与服务器建立长连接。 建立的连接首先经过二楼的Wi-Fi路由器,然后经过一楼的Wi-Fi路由器,进入互联网,最后到达位于互联网上的服务器。
建立连接后,智能家电将自身设备硬件ID信息(序列号)、动态状态信息等实时更新到服务器平台,服务器将这些状态信息保存在数据库中。
老王尝试通过智能家电的手机APP与服务器建立连接。 建立成功后,手机APP提供智能家电的硬件ID信息(如序列号),并拉取智能家电的状态信息。
服务器根据老王提供的“硬件ID”来查找数据库。 如果检索成功,则将数据库中的状态信息返回给老王,老王可以看到。
如果数据库查询结果为空,则说明智能家电尚未上传状态信息。 服务器需要利用上述的长连接向智能家电发送命令,指示其立即上传状态信息。 只要网络通了,智能家电传输连接状态,状态信息很快就会上传并发送给老王,老王也能看到。
简单来说,老王手机APP不直接与智能家电通信,而是老王手机APP与服务器通信,服务器与智能家电通信。 服务器充当两方之间通信的设置者,从连接管道复制命令/数据。 只是到另一个连接管。
智能家电一旦失去与互联网的网络连接(关闭一楼Wi-Fi),就相当于失去了与用户手机APP通信的能力。 这一点应该很好理解。
总结一下
老王手机已联网(4G/5G/Wi-fi)
智能家电也连接到互联网(Wi-Fi)
互联网上的服务器在线(已连接互联网)
如果同时满足以上三个条件,双方之间就不存在沟通问题。
相反,只要不满足任何一个条件,双方的沟通就会出现问题。
推荐三篇文章深入阅读: