Files
FunConnect/mobile
FunMC eb6e901440 fix: 修复客户端中继协议 + 全平台房间详情/分享
关键修复:
- RelayClient: 二进制头部改为FUNMC_JOIN:roomId|playerName|password协议
- RelayClient: 等待服务端OK:CONNECTED/ERROR:*握手响应
- rooms:join: 先连接中继再启动本地代理, 传入playerName和password
- 连接失败自动cleanup

Web管理面板:
- 房间详情弹窗: 点击房间卡片打开
- 玩家列表 + 踢出功能 (UserX图标)
- 复制房间号 / 删除房间按钮

Mobile:
- 房间详情底部弹窗 (Modal slide)
- 在线玩家列表
- 分享房间号 (Share API)
- 复制房间号
- apiClient.getRoomDetail 方法
2026-02-23 08:26:25 +08:00
..

FunConnect Mobile

Minecraft 联机移动客户端,基于 React Native + Expo 构建,支持 iOSAndroid

功能

  • 连接服务器 - 输入中继服务器地址连接
  • 浏览房间 - 实时查看在线联机房间(自动刷新)
  • 搜索筛选 - 按名称、房间号、房主搜索,按版本类型筛选
  • 创建房间 - 创建联机房间并分享房间号
  • 加入房间 - 输入房间号加入,支持密码验证
  • 设置持久化 - 记住服务器地址、玩家名
  • 深色主题 - Minecraft 风格暗色 UI

快速开始

前置要求

  • Node.js 18+
  • Expo CLI: npm install -g expo-cli
  • iOS: Xcode 15+(仅 macOS
  • Android: Android Studio + SDK

安装依赖

cd mobile
npm install

开发模式

# 启动 Expo 开发服务器
npm start

# 在 iOS 模拟器中运行
npm run ios

# 在 Android 模拟器中运行
npm run android

也可以用 Expo Go 手机 App 扫描二维码直接在真机上运行。

编译发布

方式一EAS Build推荐云端构建

# 安装 EAS CLI
npm install -g eas-cli

# 登录 Expo 账号
eas login

# 构建 Android APK预览版
eas build --platform android --profile preview

# 构建 Android AAB生产版用于上架 Google Play
eas build --platform android --profile production

# 构建 iOS需要 Apple Developer 账号)
eas build --platform ios --profile production

# 同时构建两个平台
eas build --platform all --profile production

方式二:本地构建

# 生成原生项目
npx expo prebuild

# Android
cd android && ./gradlew assembleRelease
# 输出: android/app/build/outputs/apk/release/app-release.apk

# iOS需要 macOS + Xcode
cd ios && xcodebuild -workspace FunConnect.xcworkspace -scheme FunConnect archive

项目结构

mobile/
├── App.tsx               # 入口 + Tab 导航
├── index.js              # 注册根组件
├── src/
│   ├── screens/
│   │   ├── ConnectScreen.tsx   # 连接服务器
│   │   ├── RoomsScreen.tsx     # 房间列表
│   │   ├── CreateScreen.tsx    # 创建房间
│   │   ├── JoinScreen.tsx      # 加入房间
│   │   └── SettingsScreen.tsx  # 设置
│   ├── lib/
│   │   ├── api.ts              # API 客户端 + 存储
│   │   └── theme.ts            # 主题色彩
│   └── components/             # 共享组件
├── app.json              # Expo 配置
├── eas.json              # EAS Build 配置
├── package.json
└── tsconfig.json

联机流程

房主

  1. 在「连接」页连接中继服务器
  2. 在「创建」页创建房间,复制房间号
  3. 将房间号分享给好友
  4. 启动本地 Minecraft 服务器

玩家

  1. 在「连接」页连接同一个中继服务器
  2. 在「加入」页输入房间号
  3. 验证通过后获取服务器地址
  4. 在 Minecraft 中添加该服务器地址
  5. 开始联机!

技术栈

  • React Native 0.73 + Expo 50
  • TypeScript
  • React Navigation - Tab 导航
  • AsyncStorage - 本地持久化
  • Axios - HTTP 请求
  • EAS Build - 云端编译发布