Files
FunConnect/server/README.md
FunMC 4f8d6211bb refactor: 客户端和服务端分离为独立项目
- server/: 中继服务端 + Web管理面板 + 部署脚本(独立项目)
- client/: Electron桌面客户端(独立项目)
- web/ 和 deploy/ 移入 server/ 目录
- 各项目独立 README.md 和 .gitignore
- 顶层 README 作为项目总览
2026-02-23 07:51:34 +08:00

117 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FunConnect Server
Minecraft 联机中继服务端,包含 TCP 中继引擎、REST API、WebSocket 实时通信、Web 管理面板。
## 功能
- **TCP 中继引擎** - 转发 Minecraft 客户端与服务端之间的流量
- **多节点集群** - 支持主节点 + 工作节点架构,水平扩展
- **房间管理** - 创建、加入、密码验证、过期清理
- **玩家管理** - 玩家列表、踢出玩家
- **流量监控** - 实时统计各房间流量
- **Token 认证** - 保护写操作 API
- **Web 管理面板** - React + Vite + TailwindCSS 构建的可视化管理界面
## 快速开始
### 安装依赖
```bash
# 服务端
npm install
# Web 管理面板
cd web && npm install
```
### 配置
复制 `.env.example``.env` 并修改:
```bash
cp .env.example .env
```
关键配置项:
- `API_PORT` - HTTP API 端口(默认 3000
- `RELAY_PORT` - TCP 中继端口(默认 25565
- `IS_MASTER` - 是否为主节点
- `SECRET` - API 认证密钥(留空则不启用认证)
### 启动
```bash
# 开发模式
npm run dev
# 生产模式
npm run build
npm start
```
### 启动 Web 管理面板
```bash
cd web
npm run dev
# 访问 http://localhost:5173
```
### Ubuntu 一键部署
```bash
chmod +x deploy/install.sh
sudo ./deploy/install.sh
```
## 项目结构
```
server/
├── src/
│ ├── index.ts # 主入口
│ ├── config.ts # 配置管理
│ ├── logger.ts # 日志系统
│ ├── relay.ts # TCP 中继引擎
│ ├── room.ts # 房间管理
│ ├── node-manager.ts # 多节点管理
│ ├── api.ts # REST API
│ └── websocket.ts # WebSocket 实时通信
├── web/ # Web 管理面板
│ ├── src/
│ │ ├── App.tsx # 主组件
│ │ ├── api.ts # API 客户端
│ │ └── pages/ # 页面组件
│ └── package.json
├── deploy/
│ └── install.sh # Ubuntu 部署脚本
├── .env.example
├── package.json
└── tsconfig.json
```
## API 文档
| 方法 | 路径 | 说明 | 认证 |
|------|------|------|------|
| GET | `/api/health` | 健康检查 | 否 |
| GET | `/api/stats` | 服务器统计 | 否 |
| GET | `/api/rooms` | 房间列表 | 否 |
| POST | `/api/rooms` | 创建房间 | 是 |
| GET | `/api/rooms/:id` | 房间详情 + 玩家列表 | 否 |
| POST | `/api/rooms/:id/join` | 加入验证(密码校验)| 是 |
| POST | `/api/rooms/:id/kick/:pid` | 踢出玩家 | 是 |
| DELETE | `/api/rooms/:id` | 删除房间 | 是 |
| GET | `/api/traffic` | 流量统计 | 否 |
| GET | `/api/nodes` | 节点列表(主节点)| 否 |
| POST | `/api/nodes/register` | 注册节点 | 是 |
| DELETE | `/api/nodes/:id` | 移除节点 | 是 |
## 技术栈
- **Node.js + TypeScript**
- **Express** - HTTP API
- **ws** - WebSocket
- **Winston** - 日志
- **React 18 + Vite + TailwindCSS** - Web 管理面板