@feng3d/ctc 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,19 +20,16 @@
20
20
  # 启动客户端(连接本地服务器测试)
21
21
  npx @feng3d/ctc start -s ws://localhost:9000 -t "my-token" -p "8080:3000:localhost"
22
22
 
23
- # 查询状态
23
+ # 查询状态与代理列表
24
24
  npx @feng3d/ctc status
25
25
 
26
- # 列出代理映射
27
- npx @feng3d/ctc list
28
-
29
26
  # 停止客户端
30
27
  npx @feng3d/ctc stop
31
28
  ```
32
29
 
33
30
  ## 命令说明
34
31
 
35
- ### `start` - 启动客户端
32
+ ### `start` - 启动客户端(别名:`ks`)
36
33
 
37
34
  ```bash
38
35
  npx @feng3d/ctc start [选项]
@@ -66,9 +63,10 @@ npx @feng3d/ctc start -s ws://your-server.com:9000 -t "my-token" -p "8080:3000:l
66
63
  | `--reconnect-interval <ms>` | 重连间隔(毫秒) | `5000` | `5000` |
67
64
  | `--max-reconnect <number>` | 最大重连次数 | `10` | `10` |
68
65
  | `--no-daemon` | 前台运行(不作为后台守护进程) | - | - |
66
+ | `--no-autostart` | 不注册开机启动 | - | - |
69
67
  | `-o, --open` | 启动后在浏览器中打开管理页面 | - | - |
70
68
 
71
- ### `status` - 查询客户端状态
69
+ ### `status` - 查询客户端状态与代理列表(别名:`zt`)
72
70
 
73
71
  ```bash
74
72
  npx @feng3d/ctc status
@@ -78,28 +76,18 @@ npx @feng3d/ctc status
78
76
 
79
77
  ```
80
78
  穿透客户端状态
81
- 运行中: 是
82
- 服务器: ws://your-server.com:9000
83
79
  PID: 12345
80
+ 服务器: ws://your-server.com:9000
81
+ 管理页面: http://127.0.0.1:9001/
82
+ 开机启动: 已启用
83
+ 连接状态: 已认证
84
84
  运行时长: 5分30秒
85
- 代理数量: 2
86
- ```
87
-
88
- ### `list` - 列出代理映射
89
-
90
- ```bash
91
- npx @feng3d/ctc list
92
- ```
93
-
94
- **输出示例:**
95
-
96
- ```
97
- 当前代理映射:
98
- :8080 -> localhost:3000
99
- :8081 -> localhost:3001
85
+ 代理映射: 2
86
+ :8080 -> localhost:3000
87
+ :8081 -> localhost:3001
100
88
  ```
101
89
 
102
- ### `stop` - 停止客户端
90
+ ### `stop` - 停止客户端(别名:`tz`)
103
91
 
104
92
  ```bash
105
93
  npx @feng3d/ctc stop
@@ -2,8 +2,10 @@
2
2
  * @module admin-server
3
3
  * @description 客户端管理页面 HTTP 服务器模块。
4
4
  * 提供一个本地 HTTP 服务,用于查看客户端状态和管理代理映射。
5
+ * 支持反向代理模式和正向穿透模式。
5
6
  */
6
- import { ProxyConfig } from '@feng3d/chuantou-shared';
7
+ import { ProxyConfig, ForwardProxyEntry } from '@feng3d/chuantou-shared';
8
+ export type { ForwardProxyEntry };
7
9
  /**
8
10
  * 客户端状态信息接口
9
11
  */
@@ -18,10 +20,22 @@ export interface ClientStatus {
18
20
  authenticated: boolean;
19
21
  /** 运行时长(毫秒) */
20
22
  uptime: number;
21
- /** 已注册的代理列表 */
22
- proxies: ProxyConfig[];
23
+ /** 代理列表(包含注册状态) */
24
+ proxies: (ProxyConfig & {
25
+ registered?: boolean;
26
+ })[];
23
27
  /** 重连次数 */
24
28
  reconnectAttempts: number;
29
+ /** 正向穿透代理列表 */
30
+ forwardProxies?: Array<{
31
+ localPort: number;
32
+ targetClientId: string;
33
+ targetPort: number;
34
+ }>;
35
+ /** 客户端是否已注册到服务器(正向穿透模式) */
36
+ isRegistered?: boolean;
37
+ /** 当前客户端ID */
38
+ clientId?: string;
25
39
  }
26
40
  /**
27
41
  * 管理页面服务器配置接口
@@ -53,19 +67,50 @@ export declare class AdminServer {
53
67
  private addProxyCallback;
54
68
  /** 删除代理回调函数 */
55
69
  private removeProxyCallback;
70
+ /** 正向穿透代理列表(用于存储运行时的正向穿透配置) */
71
+ private forwardProxies;
72
+ /** 发送消息到服务端的回调(用于正向穿透操作) */
73
+ private sendMessageCallback?;
74
+ /** 触发重连的回调函数 */
75
+ private reconnectCallback?;
76
+ /** 添加正向穿透代理回调函数 */
77
+ private addForwardProxyCallback?;
78
+ /** 删除正向穿透代理回调函数 */
79
+ private removeForwardProxyCallback?;
80
+ /** 注册客户端回调函数 */
81
+ private registerClientCallback?;
82
+ /** 获取客户端列表回调函数 */
83
+ private getClientListCallback?;
56
84
  /**
57
- * 状态页面 HTML 模板
85
+ * 静态文件路径常量
58
86
  */
59
- private static readonly STATUS_HTML;
87
+ private static readonly STATIC_DIR;
88
+ /**
89
+ * HTML 模板文件路径
90
+ */
91
+ private static readonly TEMPLATE_PATH;
60
92
  /**
61
93
  * 创建管理服务器实例
62
94
  *
63
95
  * @param config - 服务器配置
64
96
  * @param getStatus - 获取状态的回调函数
65
- * @param addProxy - 添加代理的回调函数
66
- * @param removeProxy - 删除代理的回调函数
97
+ * @param addProxy - 添加反向代理的回调函数
98
+ * @param removeProxy - 删除反向代理的回调函数
99
+ * @param addForwardProxy - 添加正向穿透的回调函数
100
+ * @param removeForwardProxy - 删除正向穿透的回调函数
101
+ * @param registerClient - 注册客户端的回调函数
102
+ * @param getClientList - 获取客户端列表的回调函数
103
+ * @param reconnect - 触发重连的回调函数
104
+ */
105
+ constructor(config: AdminServerConfig, getStatus: () => ClientStatus, addProxy: (proxy: ProxyConfig) => Promise<void>, removeProxy: (remotePort: number) => Promise<void>, addForwardProxy?: (entry: ForwardProxyEntry) => Promise<void>, removeForwardProxy?: (localPort: number) => Promise<void>, registerClient?: (description?: string) => Promise<void>, getClientList?: () => Promise<any>, sendMessage?: (message: any) => Promise<any>, reconnect?: () => Promise<void>);
106
+ /**
107
+ * 设置发送消息的回调
108
+ */
109
+ setSendMessageCallback(callback: (message: any) => Promise<any>): void;
110
+ /**
111
+ * 设置重连回调
67
112
  */
68
- constructor(config: AdminServerConfig, getStatus: () => ClientStatus, addProxy: (proxy: ProxyConfig) => Promise<void>, removeProxy: (remotePort: number) => Promise<void>);
113
+ setReconnectCallback(callback: () => Promise<void>): void;
69
114
  /**
70
115
  * 启动服务器
71
116
  *
@@ -76,10 +121,18 @@ export declare class AdminServer {
76
121
  * 处理 HTTP 请求
77
122
  *
78
123
  * 提供以下端点:
79
- * - `GET /` - 管理页面
80
- * - `GET /_ctc/status` - 获取状态
81
- * - `POST /_ctc/proxies` - 添加代理
82
- * - `DELETE /_ctc/proxies/:port` - 删除代理
124
+ * 反向代理:
125
+ * - `GET /` - 管理页面
126
+ * - `GET /_ctc/status` - 获取状态
127
+ * - `POST /_ctc/proxies` - 添加反向代理
128
+ * - `DELETE /_ctc/proxies/:port` - 删除反向代理
129
+ * - `POST /_ctc/test-proxy?port=xxx` - 测试反向代理连接
130
+ * 正向穿透:
131
+ * - `GET /_ctc/forward/list` - 获取正向穿透列表
132
+ * - `POST /_ctc/forward/add` - 添加正向穿透
133
+ * - `POST /_ctc/forward/remove` - 删除正向穿透
134
+ * - `GET /_ctc/forward/clients` - 获取客户端列表
135
+ * - `POST /_ctc/forward/register` - 注册到服务器
83
136
  */
84
137
  private handleRequest;
85
138
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW;IACX,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,iBAAiB;IACjB,OAAO,CAAC,MAAM,CAAkC;IAChD,WAAW;IACX,OAAO,CAAC,IAAI,CAAS;IACrB,WAAW;IACX,OAAO,CAAC,IAAI,CAAS;IACrB,WAAW;IACX,OAAO,CAAC,SAAS,CAAS;IAC1B,eAAe;IACf,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,eAAe;IACf,OAAO,CAAC,gBAAgB,CAAwC;IAChE,eAAe;IACf,OAAO,CAAC,mBAAmB,CAAwC;IAEnE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAshBnC;IAEA;;;;;;;OAOG;gBAED,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM,YAAY,EAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAYpD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAgErB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ5B"}
1
+ {"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"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"}