Initial commit: FunConnect project with server, relay, client and admin panel
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
106
scripts/test-lan.ps1
Normal file
106
scripts/test-lan.ps1
Normal file
@@ -0,0 +1,106 @@
|
||||
# FunMC 局域网联机测试脚本 (Windows PowerShell)
|
||||
# 用于快速验证 FunMC 服务是否正常运行
|
||||
|
||||
Write-Host "============================================" -ForegroundColor Cyan
|
||||
Write-Host " FunMC 局域网联机测试脚本" -ForegroundColor Cyan
|
||||
Write-Host "============================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# 检查必要的工具
|
||||
function Test-Command($cmd) {
|
||||
return [bool](Get-Command $cmd -ErrorAction SilentlyContinue)
|
||||
}
|
||||
|
||||
# 1. 检查 Rust 环境
|
||||
Write-Host "[1/6] 检查 Rust 环境..." -ForegroundColor Yellow
|
||||
if (Test-Command "cargo") {
|
||||
$rustVersion = cargo --version
|
||||
Write-Host " ✓ Rust 已安装: $rustVersion" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ✗ Rust 未安装,请访问 https://rustup.rs 安装" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 2. 检查 Node.js 环境
|
||||
Write-Host "[2/6] 检查 Node.js 环境..." -ForegroundColor Yellow
|
||||
if (Test-Command "node") {
|
||||
$nodeVersion = node --version
|
||||
Write-Host " ✓ Node.js 已安装: $nodeVersion" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ✗ Node.js 未安装,请访问 https://nodejs.org 安装" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 3. 检查数据库连接
|
||||
Write-Host "[3/6] 检查数据库连接..." -ForegroundColor Yellow
|
||||
$dbRunning = docker ps --filter "name=funmc-db" --format "{{.Names}}" 2>$null
|
||||
if ($dbRunning -eq "funmc-db") {
|
||||
Write-Host " ✓ PostgreSQL 容器运行中" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ! PostgreSQL 容器未运行,尝试启动..." -ForegroundColor Yellow
|
||||
docker start funmc-db 2>$null
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host " ! 创建新的 PostgreSQL 容器..." -ForegroundColor Yellow
|
||||
docker run -d --name funmc-db -p 5432:5432 -e POSTGRES_PASSWORD=password -e POSTGRES_DB=funmc postgres:14
|
||||
}
|
||||
Start-Sleep -Seconds 3
|
||||
Write-Host " ✓ PostgreSQL 容器已启动" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# 4. 检查端口占用
|
||||
Write-Host "[4/6] 检查端口占用..." -ForegroundColor Yellow
|
||||
$ports = @(3000, 3001, 7900, 5432)
|
||||
$allFree = $true
|
||||
foreach ($port in $ports) {
|
||||
$used = netstat -an | Select-String ":$port\s"
|
||||
if ($used) {
|
||||
Write-Host " ! 端口 $port 已被占用" -ForegroundColor Yellow
|
||||
$allFree = $false
|
||||
} else {
|
||||
Write-Host " ✓ 端口 $port 可用" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
# 5. 获取本机 IP
|
||||
Write-Host "[5/6] 获取本机 IP..." -ForegroundColor Yellow
|
||||
$localIP = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -notlike "*Loopback*" -and $_.IPAddress -notlike "169.*" } | Select-Object -First 1).IPAddress
|
||||
if ($localIP) {
|
||||
Write-Host " ✓ 本机局域网 IP: $localIP" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ✗ 无法获取本机 IP" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# 6. 显示测试说明
|
||||
Write-Host "[6/6] 测试说明..." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host "============================================" -ForegroundColor Cyan
|
||||
Write-Host " 局域网联机测试步骤" -ForegroundColor Cyan
|
||||
Write-Host "============================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host "1. 启动服务端:" -ForegroundColor White
|
||||
Write-Host " cd server" -ForegroundColor Gray
|
||||
Write-Host " cargo run" -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
Write-Host "2. 启动客户端 (新终端):" -ForegroundColor White
|
||||
Write-Host " cd client/ui && npm install" -ForegroundColor Gray
|
||||
Write-Host " cd .. && cargo tauri dev" -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
Write-Host "3. 配置其他电脑的客户端:" -ForegroundColor White
|
||||
Write-Host " 修改 client/src/config.rs:" -ForegroundColor Gray
|
||||
Write-Host " DEFAULT_SERVER_URL = `"http://${localIP}:3000`"" -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
Write-Host "4. 测试流程:" -ForegroundColor White
|
||||
Write-Host " - 主机: 启动 MC 服务器 -> FunMC 创建房间 -> 开始托管" -ForegroundColor Gray
|
||||
Write-Host " - 玩家: FunMC 加入房间 -> 连接 -> 复制地址到 MC" -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
Write-Host "============================================" -ForegroundColor Cyan
|
||||
|
||||
# 询问是否启动服务
|
||||
Write-Host ""
|
||||
$start = Read-Host "是否立即启动服务端? (y/n)"
|
||||
if ($start -eq "y") {
|
||||
Write-Host ""
|
||||
Write-Host "启动服务端..." -ForegroundColor Green
|
||||
Set-Location server
|
||||
cargo run
|
||||
}
|
||||
Reference in New Issue
Block a user