php采用workerman的gateway组件进行的编写。 易语言程序仅调用精易模块和鱼刺多线程模块,整个架构比较简单,只要稍微懂点易语言都可以操作。 结构介绍: php放在公网服务器上进行服务(vps、独立服务器都可以,虚拟主机需要独立IP可以开端口的具体我没试过) 易语言放在nei网连接到php的服务端口,建立连接,发送验证binary包 除了验证binary包以外,其他的均为加密传输,无惧窃听拦截,就算拦截到验证binary包,不知道私钥(暂且称呼为私钥)一样无法破解数据,也可以选择不加密 加密算法有AES,DES,RC2,RC4等,自行选择也可以说这就是一个内网穿透框架
暂时仅预留了多内网客户端接口,均衡功能还未实现,最好只用一个内网客户端,否则所有的内网客户端会同时受到通知~~~
功能简介: 外网客户端的connect/receive/close 都会转发到内网服务端,内网服务端处理完后可以返回操作给外网服务端,支持send/sendAll/Close 映射通讯数据结构(示例中已处理沾包): {byte isCrypt}{int Length}{Text Json} 搭建需求: PHP端:VPS/服务器或可以开端口的虚拟主机,需要启用(pcntl、posix),支持 Windows && Linux,具体请见workerman开发文档 易语言端:无所谓,自定义自己的协yi就行了,什么http,ws等,都可以自行处理,只要是tcp就行了 肯定有人要问为什么不用swoole 本来是向用swoole的,但是尝试了一下后发现虽然效率很高,但是作为底层扩展,不是那么容易上手,文档也不是太全,增加了使用门槛,遇到bug的时候直接懵逼,作为映射服务端不太友好。so 上图:PHP仅需设置以下参数(不设置也可以直接用) (一定要在防火墙开放端口,没有防火墙的当我没说)
示例里面采用的易语言自带客户组件,用户可以自行更换,有条件的可以自己重写协议
安装方法: 将 GatewayWorker 整个上传服务器(PHP版本必须≥7.0.0) config.php => GatewayWorker/Applications/ephpSrv/config.php Linux:切换至 GatewayWorker 目录,调试方式运行php startSrv.php start(守护模式为 php startSrv.php start -d,无日志输出) Windows:执行 GatewayWorker 目录中的,startWinSrv.bat 具体停止和操作请看workerman文档 http://doc2.workerman.net/start-and-stop.html 易语言: 打开示例,按需求修改,运行,ok! 注意: 可能出现Connect 比 recv 后到达,close 可能会延迟到达或者比recv先到达,暂时没得整,有能力的自行解决一下 下载链接:https://t00y.com/file/20110282-442433763
|