- 每隔1分钟,清理用户请求数据。
- 每隔24小时,清理拨号公网IP记录。
- 通过当前请求TCP连接的授权信息或IP,获取到当前用户的唯一ID,如果获取不到,则表示未授权,直接返回。
- 如果获取到了用户,表示可以允许代理当前连接,那么获取当前用户的连接限制,判断是否触发了限流。
- 如果未获取到限流策略,表示无限流,直接代理转发。否则获得到连接限制,通过SQLite获取当前用户的访问数据。
- 如果未达到限制,则转发请求,否则拒绝断开连接。
- 当处于下载状态时,所有的命令操作均阻塞等待下载完成,下载事件完成后放行命令。目前队列容量为20个,也就是说,当队列内超过20个命令时,会拒绝其他命令。
位置 | 任务 | 沉睡秒数 |
---|---|---|
run.go#32 | 制造拨号时间差 | 5 - 15 |
run.go#54 | VPS上报数据失败 | 5 |
run.go#110 | 下载时阻塞命令 | 5 |
m.go#36 | 刷新GUI面板 | 3 |
run.go#57 | 等待关闭旧客户端 | 1 |
download.go#44 | 定时检测是否有新版本 | 10 |