智能开关是咋处理外网访问的
简单的可能有人会想到QQ当年的UDP隧道(即使是隧道也是有中心服务器的)。 稍微复杂一点的是公网部署服务器,开关和手机APP都链接到该服务器上进行(可以长链接,也可以是短链接的周期检测)。 至于更高级的,可以考虑web socket 这些。
■网友
所有的类似中心-节点的系统基本模式都差不多,只是实现的技术上略有区别。最常见的例子是各种电子联播系统:出租车顶LED、公交车LED、楼宇LED如分众、机场联播网等等,以及ATM机、自助优惠券打印机等等当然,现在越来越多还有智能路由器、智能开关、智能家电等先说简单说说中心-节点之间的通讯模式,一般有几个标准动作:启动:更新配置、更新内容包运行时定时执行:心跳更新状态,比如有的业务需要定时同步数据特定业务动作(一般是实时连接)关机:更新状态,通知服务器是正常关机之所以采取心跳模式,这和HTTP这样的无状态协议的设计出发点是一致的:保持实时连接对服务器的网络资源占用过大。服务器端维持着一个心跳“会话”列表,里面有每一个节点最近一次心跳的时间、节点的各种状态(包括IP)。可不可以由中心服务器反过来向节点发起请求,直接连接呢?——显然,如果节点上级还有一个路由,就涉及到端口映射、隧道等复杂问题了。所以这类特殊情况很少见,绝大部分场景下以上模式足够用了。另外,节点一般还会有额外的应用负责更新主应用(升级模块)。好,来题主问题中涉及的技术细节:OpenWrt/DDWrt/TT等,就是嵌入式的、精简的Linux在这个精简的Linux上可以用:shell脚本、自己写的程序来与中心服务器通讯(基本模式如上)——用户可以通过中心服务器来控制它。当然,还是由节点主动发起请求,“接到”来自服务器的指令(所以有延时);在这个精简的Linux上可以安装运行WebServer或者自己写的程序来监听网络通讯,本地设备只要能连接到它就能和它通讯,实现本地直连控制——显然现成的httpd是最简单的侦听服务和容器,只需要做网页即可;所以智能开关如小K一类基本就是一台路由器,上面运行着一个WebServer和对应的程序(以支持本地配置)、一些脚本或程序(与服务器保持通讯)。题主的问题:但是外网一般是怎么处理?通过一个服务器的ssh隧道?还是说在内网做了端口映射,但是如何通过这台设备(而不是路由器)实现端口转发?有点不好理解题主的问题,大致如下:前两个貌似指通过该设备连接外网——这货就是个路由器,无非是启用了WiFi信号增强功能时,工作在中继模式。——非中继模式,可以启用它的DHCP,通过它分配IP;如果没有启用DHCP,就在接入设备上手工配置一下即可——不过这类设备非中继模式下应该都没有开启路由功能,至少不开启无线和SSID广播,就只能有线连接到设备。端口映射和转发:从内向外不存在端口映射和转发的需要,从字面意思理解题主是想通过外网连接上级路由器,连接(端口映射和转发)到智能开关,然后又与连接到智能开关的设备通讯——见上一条。中继模式,和上级路由有关系、和这货没关系;非中继模式,在这货上配置端口映射等,可以把相应命令加入到启动脚本即可。猜测题主的意图:——题主是不是想了解用户使用手机APP通过中心控制这类设备时的实现方法?——答:其实不是这样麻烦的,见技术细节之2
■网友
一般这样:开关配置好连接家中路由器之后,通过一个TCP长连接远程连接到云服务器。手机通过云服务器直接和那个TCP长连接进行通讯。长连接并不实际消耗网络流量,除非心跳包,流量也极小。做的好的话,一台服务器可以维护几万都几十万个连接数。如果有人要说端口数最多65535会限制,只要了解一下TCP原理的话,其实上限远远不止这个数目。
■网友
配置保存在服务器,修改都在服务器端,修改参数时,设备从服务器获取,发现与本地不一样时,修改成与服务器端一致 罗技进军智能家居领域,发布Harmony遥控器|_阿里穿戴
推荐阅读
- 济南垃圾处理单位“前分后混”将面临最高十万元罚款
- 汽车|传华为智能汽车部件采用三元锂电池
- 汽车知识|捷达库存成灾,特价处理,4S店卖不动,大家都不差钱!
- 想要入门图像处理,应该从哪本书看起
- 学图像处理有哪些不错的书推荐
- 电视墙没有预留网线口,智能电视怎样上网
- 入选|
- 关于用phpfsocket 写Post, 模拟http 报文怎样写入要传输的处理数据
- 汽车|长安汽车:公司与华为、宁德时代三方正在联合开发智能网联电动汽车平台和产品
- 孩子|小孩发烧的处理方法有物理降温与药物退烧!但很多新手父母不会
