feat: 新增移动客户端(iOS + Android)

- 新增 mobile/ 项目:React Native + Expo
- 5个核心页面:连接服务器、房间列表、创建房间、加入房间、设置
- Tab 导航 + Minecraft 风格深色 UI
- 房间搜索/筛选(名称、房间号、房主、版本类型)
- 15秒自动刷新房间列表
- 设置持久化(AsyncStorage)
- EAS Build 配置(云端构建 iOS/Android)
- 完整 README 含构建指南
- 更新顶层 README 为三项目全平台架构
This commit is contained in:
FunMC
2026-02-23 08:08:46 +08:00
parent e73c8e536e
commit 09470c0465
17 changed files with 1309 additions and 26 deletions

View File

@@ -2,14 +2,26 @@
一个支持多节点中继的 Minecraft 联机平台让玩家无需公网IP即可轻松联机。
本仓库包含 **个独立项目**可分别独立开发、部署和运行
本仓库包含 **个独立项目**覆盖全平台客户端和服务端
## 支持平台
| 平台 | 类型 | 项目 |
|------|------|------|
| **Windows** | 桌面客户端 (NSIS 安装包) | `client/` |
| **macOS** | 桌面客户端 (DMG, x64/arm64) | `client/` |
| **Linux** | 桌面客户端 (AppImage/deb) | `client/` |
| **iOS** | 移动客户端 | `mobile/` |
| **Android** | 移动客户端 (APK/AAB) | `mobile/` |
| **Ubuntu** | 中继服务器 + Web 管理面板 | `server/` |
## 项目结构
```
FunConnect/
├── server/ # 服务端(中继服务器 + Web 管理面板 + 部署脚本)
── client/ # 客户端Electron 桌面应用
── client/ # 桌面客户端Electron: Windows / macOS / Linux
└── mobile/ # 移动客户端React Native + Expo: iOS / Android
```
## 服务端 (`server/`)
@@ -25,46 +37,63 @@ FunConnect/
- **一键部署** - Ubuntu 自动安装脚本 + systemd 服务
```bash
cd server
npm install
cp .env.example .env
npm run dev
cd server && npm install && cp .env.example .env && npm run dev
```
详细文档见 [server/README.md](server/README.md)
📖 [server/README.md](server/README.md) · 📦 [部署教程 DEPLOY.md](server/DEPLOY.md)
## 客户端 (`client/`)
## 桌面客户端 (`client/`)
Electron 跨平台桌面客户端,支持 Windows / macOS / Linux。
- **连接服务器** - 输入中继地址一键连接
- **房间管理** - 浏览/创建/加入联机房间
- **本地代理** - 自动建立本地代理MC 添加 `127.0.0.1:25566` 即可联机
- **本地代理** - 自动建立 TCP 代理MC 添加 `127.0.0.1:25566` 即可联机
- **设置持久化** - 记住服务器地址、玩家名等偏好
- **系统托盘** - 最小化到托盘后台运行
```bash
cd client
npm install
npm run dev
cd client && npm install && npm run dev # 开发
npm run dist:win # 打包 Windows
npm run dist:mac # 打包 macOS
npm run dist:linux # 打包 Linux
```
详细文档见 [client/README.md](client/README.md)
📖 [client/README.md](client/README.md)
## 移动客户端 (`mobile/`)
React Native + Expo 移动客户端,支持 iOS / Android。
- **房间管理** - 浏览/搜索/创建/加入联机房间
- **设置持久化** - 记住服务器地址和玩家名
- **深色 UI** - Minecraft 风格暗色主题
```bash
cd mobile && npm install && npm start # 开发Expo
eas build --platform android --profile preview # 构建 Android APK
eas build --platform ios --profile production # 构建 iOS
```
📖 [mobile/README.md](mobile/README.md)
## 架构
```
┌───────────────┐ ┌──────────────────────────┐
FunConnect TCP 中继服务器 (Ubuntu) │
桌面客户端 │◄─────►│ server/ 项目独立部署
│ client/ ─────────┐ ┌──────────┐ │
└───────────────┘ │ TCP中继 │ │ REST API │
└─────────┘ └──────────┘ │
┌───────────────┐ ┌──────────────────────┐
Minecraft TCP │ │ Web 管理面板
游戏客户端◄─────►│ │ (React + Vite)
└───────────────┘ │ └──────────────────────┘
└──────────────────────────┘
┌──────────────────┐
桌面客户端 Windows / macOS / Linux
Electron TCP 本地代理
│ client/ │─────────┐
└──────────────────┘ │
┌──────────────────┐ ┌──────────────────────────
移动客户端 中继服务器 (Ubuntu)
React Native │──►│ TCP 中继 + REST API
│ mobile/ │ │ Web 管理面板 (React)
└──────────────────┘ └──────────────────────────┘
┌──────────────────┐ │
│ Minecraft │─────────┘
│ 游戏客户端 │ TCP 直连中继
└──────────────────┘
```
## License