feat: new xboard
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# 在线设备数限制
|
||||
1. 在订阅上添加客户端连接数限制
|
||||
2. 用户订阅的时候将客户端限制附加到用户表字段上
|
||||
3. 后端获取用户信息的时候增加客户端显示字段显示
|
||||
4. 获取在线用户IP,判断是否达到了限制数量,当达到了限制IP数量拒绝新的IP连接 , 当有新的IP连接的时候立刻上报到xboard后端
|
||||
5. 上报用户流量时附带IP
|
||||
|
||||
|
||||
#### xboard 需要增加接口
|
||||
1. 获取节点用户列表
|
||||
```
|
||||
{
|
||||
"id": 1,
|
||||
"uuid":"cd692137-3f7b-47fb-b7a3-037a203d6489",
|
||||
"speed_limit": null,
|
||||
"device_limit": 10,
|
||||
"online_ips": ['1.1.1.1', '2.2.2.2']
|
||||
}
|
||||
```
|
||||
2. 后端上报新的在线用户IP (后端获取到在线数量没达到用户在线限制才会上报)
|
||||
```
|
||||
{
|
||||
"id": 1,
|
||||
"new_online_ip": "3.3.3.3"
|
||||
}
|
||||
```
|
||||
上报成功返回 ```{ "data":true }```
|
||||
当达到用户在线数量限制就返回,面板的在线用户的IPs
|
||||
```
|
||||
{
|
||||
"data": ['1.1.1.1','2.2.2.2','3.3.3.3','4.4.4.4','5.5.5.5']
|
||||
}
|
||||
```
|
||||
3. 后端上报用户流量(IP,ID,流量,三要素)
|
||||
```
|
||||
{
|
||||
"id":1,
|
||||
"u": 100,
|
||||
"d": 100,
|
||||
"ip": "1.1.1.1"
|
||||
}
|
||||
```
|
||||
|
||||
#### 安全设计
|
||||
1、为了不泄漏用户的在线IP, ip使用Hash加密处理, 后端有用户连接时,对用户的连接IP使用 hash验证
|
||||
|
||||
#### 界面反馈
|
||||
##### 后台界面
|
||||
- 在订阅界面增加用户设备限制
|
||||
- 编辑用户时增加用户设备限制
|
||||
- 在用户列表显示在线用户量
|
||||
- 在订阅列表显示当前订阅在线用户、IP数量
|
||||
- 在节点页面显示在线用户数量和IP数
|
||||
##### 用户前端
|
||||
- 首页增加在线链接设备数(旁边增加重置订阅按钮)
|
||||
|
||||
#### 后续性能优化
|
||||
- 后端上报用户流量使用 brotli压缩,减少体积
|
||||
- 后端上报新的用户IP接口使用websocet或者grpc
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
# 性能对比总结
|
||||
|
||||
## 测试使用机器配置
|
||||
CPU型号: Intel 8255C
|
||||
CPU核心数量: 4核
|
||||
内存:8G
|
||||
|
||||
|
||||
## 不同环境并发对比
|
||||
> php-fpm指的就是我们平时使用的aapanel(宝塔)的安装方式, 并发测试使用的是wrk
|
||||
|
||||
|场景 | php-fpm(传统) | php-fpm(传统开启opcache) | laravels | webman(docker)|
|
||||
|---- | ---- |---- |----| ---|
|
||||
|首页 | 6请求/秒 | 157请求/秒 | 477请求/秒 | 803请求/秒 |
|
||||
|用户订阅 | 6请求/秒 | 196请求/秒 | 586请求/秒 | 1064请求/秒 |
|
||||
|用户首页延迟| 308ms | 110ms | 101ms | 98ms |
|
||||
|
||||
## 前端加载速度对比(v2b原版/Xboard)
|
||||
> FCP(First Contentful Paint) 指的是 首次内容渲染 耗费的时间
|
||||
|
||||
> FCP(原版耗时/xboard耗时) 结果越低越好
|
||||
|
||||
|场景 | php-fpm | php-fpm(开启opcache)|laravels | webman(docker)|
|
||||
|---- | ---- |---- |--- |---- |
|
||||
| 登录页面 | FCP(7秒/2.9秒) | FCP (7秒/2.9秒) | FCP(7.1秒/2.7秒) | FCP(7.3秒/2.9秒) |
|
||||
| 注册页面 | FCP(7.1秒/3秒) | FCP (7秒/2.8秒) | FCP(7.1秒/2.7秒) | FCP(7.3秒/2.9秒) |
|
||||
Reference in New Issue
Block a user