/netty-proxy

netty实现的http动态代理服务器

Primary LanguageJava

netty-proxy

netty实现的http动态代理服务器

1.需求

通过app来管理家用路由器,路由器是经过定制的路由器系统里搭载着一个http服务,通过移动端访问路由器可对家庭中其他嵌入式设备进行管理。在家中可直接连接路由器即可,如不在 在家中就无法连接到路由器。要解决这个问题就需要一个远程服务器来做代理,移动端通过远程代理服务器访问路由器端。

2.设计

因为在公网中一个设备的ip可能是经常变化的,所以不能用ip标识一个设备是不可靠的,在后台数据库设计中将用户账号与路由器mac地址绑定,或者说路由器的唯一标识,在后期中可具体设计。此项目是负责动态代理服务器模块,路由器向动态代理服务器发送心跳,代理服务器吧路由器的唯一标识做为key,把ip和端口做为value存储到redis,路由器每三十秒向代理服务器发送一次心跳保活,若超过三十秒则认为远程主机不可用。移动端用户登陆后,通过账号获得所对应的路由器标识,每次发送请求携带路由器的key,代理服务器通过路由器key查询到远程主机,建立连接通道。原理如图: