基本上已经完善!并且24*7小时长时间工作,在期间我们多次尝试断网重连、渠道反复注册等,均无任何问题。
采用多线程异步处理,并发性能相当强悍!
Python 2.7.9 或 Python 3.4.2 以上
直接运行即可.
如果有小伙伴不想依赖环境运行,不妨可以试下PyInstaller,把py编译成可执行文件。
注:随着IPv6加速普及,各大移动终端及宽带、网站、应用不断加速支持IPv6,本项目现已跟进IPv4/IPv6双栈支持。
1.本地数据分块转发
2.支持单线程异步协程python-ngrok_gevent.py
- 需安装gevent库, 命令:
python -m pip install gevent
1.添加IPv4/IPv6双栈服务连接及本地转发协议支持
- 支持数字格式地址及双栈域名地址解析,可分别设置服务连接及本地转发协议
- 域名双栈解析优先: IPv6 > IPv4
- 双栈协议参数说明:
[dualstack]
or[dualstack_or]
- 服务连接协议参数: dualstack
[IPv4/IPv6=双栈, IPv4=IPv4, IPv6=IPv6]
- 本地转发协议参数: dualstack_or
[0=双栈, 1=IPv4, 2=IPv6]
2.删除旧版不支持的域名解析函数及旧版查询隧道信息函数
1.修复部分情况导致查询隧道信息出错
1.支持配置文件运行,优先读取配置信息
- 运行命令:
./python-ngrok.py ngrok.config
2.感谢@thinkclaves 贡献配置文件代码
1.修复接收字节序过短,导致的异常事件
2.优化部分处理器的大小端字节对齐
1.修复部分情况导致丢包,数据不完整问题
1.添加子线程跟随主线程结束而结束
2.添加程序退出时发送客户退出消息
3.添加捕获键盘中断异常事件
4.更改断线后重新赋值心跳变量
1.添加日记输出模块,调试输出格式化
2.修复本地映射地址无效转向定制的html页面
3.修复关闭上个线程读写,判断描述符是否有效
4.更改发送心跳周期
5.修复断线后重新赋值心跳变量
1.修复关闭上个线程读写,某些极端情况出错
2.修复组包/拆包在其他版本字节流长度不一致
1.修复本地转发完后,关闭上个线程读写
1.修复可写事件,某些极端情况发送数据出错
2.修复处于被注册的期间,断网导致发送心跳出错
1.转多线程异步处理,大幅提升即时并发性能
2.修复主线程cpu占用过高
3.修复堵塞和非堵塞发送
4.修复读写I/O判断
5.修复输出日记排序
6.优化断线重连机制
7.修复断线后变量无法赋值
8.修复本地转发完后导致远程挂起
9.添加本地映射地址无效转向定制的html页面