✨ feat: 对aide decide进行部分调整
This commit is contained in:
@@ -119,24 +119,46 @@ stop
|
||||
@enduml
|
||||
```
|
||||
|
||||
## 三、端口配置
|
||||
## 三、网络配置
|
||||
|
||||
### 3.1 端口探测策略
|
||||
### 3.1 配置项
|
||||
|
||||
| 配置项 | 默认值 | 说明 |
|
||||
|--------|--------|------|
|
||||
| `decide.port` | 3721 | 起始端口 |
|
||||
| `decide.bind` | `"127.0.0.1"` | 监听地址,设为 `"0.0.0.0"` 可允许外部访问 |
|
||||
| `decide.url` | `""` | 自定义访问地址,为空时自动生成 `http://localhost:{port}` |
|
||||
| 最大尝试次数 | 10 | 从起始端口开始尝试 |
|
||||
|
||||
### 3.2 配置示例
|
||||
|
||||
```toml
|
||||
[decide]
|
||||
port = 3721
|
||||
bind = "0.0.0.0" # 监听所有网络接口
|
||||
url = "http://example.dev.net:3721" # 自定义访问地址
|
||||
```
|
||||
|
||||
### 3.3 端口探测策略
|
||||
|
||||
**探测逻辑**:
|
||||
|
||||
1. 从 `decide.port` 开始
|
||||
2. 尝试绑定端口
|
||||
2. 尝试绑定到 `decide.bind:port`
|
||||
3. 若失败,尝试下一个端口
|
||||
4. 最多尝试 10 次
|
||||
5. 全部失败则返回错误
|
||||
|
||||
### 3.2 端口占用检测
|
||||
### 3.4 访问地址生成
|
||||
|
||||
```
|
||||
if decide.url 不为空:
|
||||
access_url = decide.url
|
||||
else:
|
||||
access_url = f"http://localhost:{actual_port}"
|
||||
```
|
||||
|
||||
### 3.5 端口占用检测
|
||||
|
||||
```
|
||||
check_port_available(port: int) -> bool:
|
||||
@@ -144,7 +166,7 @@ check_port_available(port: int) -> bool:
|
||||
检查端口是否可用
|
||||
|
||||
1. 创建 socket
|
||||
2. 尝试绑定到 127.0.0.1:port
|
||||
2. 尝试绑定到 {bind}:{port}
|
||||
3. 成功则端口可用,关闭 socket 返回 True
|
||||
4. 失败则端口被占用,返回 False
|
||||
"""
|
||||
|
||||
@@ -167,10 +167,22 @@ manager = "pnpm"
|
||||
|------|------|--------|------|
|
||||
| `port` | int | `3721` | Web 服务起始端口,端口被占用时向后探测最多 10 次 |
|
||||
| `timeout` | int | `0` | 服务超时时间(秒),0 表示不启用超时 |
|
||||
| `bind` | string | `"127.0.0.1"` | 服务监听地址,设为 `"0.0.0.0"` 可允许外部访问 |
|
||||
| `url` | string | `""` | 自定义访问地址,为空时自动生成 `http://localhost:{port}` |
|
||||
|
||||
**使用场景**:
|
||||
- `aide decide '<json>'` 读取 `port` 作为起始端口
|
||||
- `aide decide '<json>'` 读取 `timeout` 控制服务最长等待时间
|
||||
- `aide decide '<json>'` 读取 `bind` 作为监听地址
|
||||
- `aide decide '<json>'` 读取 `url` 作为输出的访问地址(支持自定义域名)
|
||||
|
||||
**示例配置**:
|
||||
```toml
|
||||
[decide]
|
||||
port = 3721
|
||||
bind = "0.0.0.0" # 监听所有网络接口
|
||||
url = "http://example.dev.net:3721" # 自定义访问地址
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user