Feature(Go): Embed and serve web UI assets
This commit is contained in:
@@ -25,6 +25,12 @@ server/go/
|
||||
│ └── pool.go # Goroutine 工作池
|
||||
├── logger/
|
||||
│ └── logger.go # 日志模块 (基于 zerolog)
|
||||
├── web/
|
||||
│ ├── embed.go # //go:embed 嵌入 HTML/xterm.js 等 web 资源
|
||||
│ ├── server.go # HTTP server (静态页面 + 后续 WS 信令)
|
||||
│ └── assets/
|
||||
│ ├── index.html # 从 ../../web/index.html sync 而来 (gitignored)
|
||||
│ └── static/ # 第三方 xterm.js 资源 (checked in)
|
||||
└── cmd/
|
||||
└── main.go # 程序入口
|
||||
```
|
||||
@@ -42,6 +48,7 @@ server/go/
|
||||
- **优雅关闭**: 支持信号处理和优雅停机,自动释放资源
|
||||
- **可配置**: 支持自定义端口、最大连接数、超时时间等
|
||||
- **日志系统**: 基于 zerolog,支持文件输出、日志轮转、客户端上下线记录
|
||||
- **Web UI 服务**: 内建 HTTP server,编译期 `//go:embed` 嵌入页面和静态资源,免外部文件依赖
|
||||
|
||||
## 支持的命令
|
||||
|
||||
@@ -67,17 +74,37 @@ go mod tidy
|
||||
|
||||
### 编译
|
||||
|
||||
推荐用 Makefile,编译前会自动从 `server/web/` 同步 HTML 到 `web/assets/`:
|
||||
|
||||
```bash
|
||||
go build -o simpleremoter-server ./cmd
|
||||
make build # 当前平台
|
||||
make windows # Windows amd64
|
||||
make linux # Linux amd64
|
||||
```
|
||||
|
||||
也可以直接用 `go build`,但要先手动 sync:
|
||||
|
||||
```bash
|
||||
make sync && go build -o simpleremoter-server ./cmd
|
||||
```
|
||||
|
||||
VSCode F5 调试时由 `sync-web-assets` preLaunchTask 自动同步。
|
||||
|
||||
### 运行
|
||||
|
||||
```bash
|
||||
./simpleremoter-server
|
||||
```
|
||||
|
||||
服务器默认监听 6543 端口,日志输出到 `logs/server.log`。
|
||||
默认监听 TCP 端口 `6543`(被控设备),HTTP 端口 `8080`(浏览器 Web UI)。日志写到 `logs/server.log`。
|
||||
|
||||
### 命令行参数
|
||||
|
||||
| 参数 | 默认值 | 说明 |
|
||||
| ---- | ------ | ---- |
|
||||
| `-port` / `-p` | `6543` | TCP 监听端口,分号分隔可多端口(如 `6543;6544`) |
|
||||
| `-http-port` | `8080` | HTTP 监听端口(Web UI),传 `0` 禁用 |
|
||||
| `-no-console` | `false` | 关闭控制台输出(守护进程模式) |
|
||||
|
||||
### 环境变量
|
||||
|
||||
|
||||
Reference in New Issue
Block a user