Ai_GirlFriend/xuniYou/网络连接问题解决.md
2026-03-02 18:57:11 +08:00

5.5 KiB
Raw Permalink Blame History

网络连接问题解决方案

🔴 当前问题

request:fail abort statusCode:-1 failed to connect to /192.168.1.141:30101

手机无法连接到服务器,这是网络配置问题,不是代码问题。

快速检查清单

1. 确认手机和电脑在同一个 WiFi

电脑端:

ipconfig

查找 无线局域网适配器 WLAN 的 IPv4 地址,例如:

IPv4 地址 . . . . . . . . . . . . : 192.168.1.141

手机端:

  • 打开 WiFi 设置
  • 点击已连接的 WiFi
  • 查看 IP 地址(应该是 192.168.1.x

如果手机 IP 不是 192.168.1.x说明不在同一个网络

2. 测试服务器是否可访问

在手机浏览器中访问:

http://192.168.1.141:30101/docs

如果能打开 API 文档页面 → 网络正常,继续下一步 如果无法打开 → 网络问题,继续排查

3. 检查防火墙

方法 1添加防火墙规则推荐

  1. Win + R,输入 wf.msc,回车
  2. 点击左侧"入站规则"
  3. 点击右侧"新建规则"
  4. 选择"端口" → 下一步
  5. 选择 TCP输入 30100,30101 → 下一步
  6. 选择"允许连接" → 下一步
  7. 全部勾选(域、专用、公用)→ 下一步
  8. 名称输入"Python 服务器" → 完成

方法 2临时关闭防火墙测试

以管理员身份运行 PowerShell

# 关闭防火墙
netsh advfirewall set allprofiles state off

# 测试完成后重新开启
netsh advfirewall set allprofiles state on

4. 检查服务器是否正在运行

确认服务器日志中有:

Uvicorn running on http://0.0.0.0:30101
Application startup complete.

如果看到这些日志 → 服务器正常运行 如果没有 → 重启服务器

5. 检查端口是否被占用

netstat -ano | findstr :30101

应该看到:

TCP    0.0.0.0:30101    0.0.0.0:0    LISTENING    [进程ID]

🔧 常见问题解决

问题 1IP 地址变了

症状:

  • 之前能连接,现在不能了
  • 电脑重启后无法连接

解决:

  1. 在电脑上运行 ipconfig 查看新的 IP 地址
  2. 更新 xuniYou/utils/request.js 中的 IP 地址:
export const baseURL = 'http://新IP:30100'
export const baseURLPy = 'http://新IP:30101'
  1. 重新编译 App

或者设置静态 IP推荐

  1. 打开"控制面板" → "网络和共享中心"
  2. 点击当前连接的网络
  3. 点击"属性" → "Internet 协议版本 4 (TCP/IPv4)" → "属性"
  4. 选择"使用下面的 IP 地址"
    • IP 地址192.168.1.141
    • 子网掩码255.255.255.0
    • 默认网关192.168.1.1
    • 首选 DNS192.168.1.1

问题 2手机连接的是移动数据

症状:

  • 手机显示 4G/5G 图标
  • 或者连接的是不同的 WiFi

解决:

  1. 关闭手机移动数据
  2. 连接到与电脑相同的 WiFi
  3. 重新测试

问题 3路由器 AP 隔离

症状:

  • 手机和电脑在同一个 WiFi
  • 但是无法互相访问

解决:

  1. 登录路由器管理页面(通常是 192.168.1.1
  2. 查找"AP 隔离"或"无线隔离"设置
  3. 关闭 AP 隔离功能
  4. 重启路由器

问题 4Windows 网络配置

症状:

  • 防火墙已关闭
  • 但还是无法连接

解决:

检查网络配置文件类型:

  1. 打开"设置" → "网络和 Internet" → "状态"
  2. 点击"属性"
  3. 确保网络配置文件是"专用"而不是"公用"

🧪 完整测试流程

步骤 1测试电脑本地访问

在电脑浏览器中访问:

http://127.0.0.1:30101/docs

能打开 → 服务器正常 不能打开 → 服务器问题,检查服务器日志

步骤 2测试局域网访问

在电脑浏览器中访问:

http://192.168.1.141:30101/docs

能打开 → 网络配置正常 不能打开 → 防火墙或网络配置问题

步骤 3测试手机访问

在手机浏览器中访问:

http://192.168.1.141:30101/docs

能打开 → 网络连接正常,可以测试 App 不能打开 → 手机网络问题

步骤 4测试 App 连接

打开 App观察日志

WebSocket URL: ws://192.168.1.141:30101/voice/call
WebSocket onOpen: [Object] {}

看到 onOpen → 连接成功 看到 fail → 还有问题

📝 推荐配置

开发环境最佳实践

  1. 设置电脑静态 IP

    • 避免 IP 地址变化
    • 固定为 192.168.1.141
  2. 配置防火墙规则

    • 允许端口 30100 和 30101
    • 不要完全关闭防火墙
  3. 使用专用网络配置文件

    • 在 Windows 网络设置中选择"专用"
    • 避免公用网络的限制
  4. 关闭 AP 隔离

    • 在路由器设置中关闭
    • 允许设备间通信

🚀 解决后的测试

网络连接正常后,重新测试语音通话功能:

  1. 打开 App
  2. 进入语音通话页面
  3. 按住"按住说话"
  4. 说话 3-5 秒
  5. 松开按钮

观察日志:

✅ 开始说话
📤 发送 ptt_on 信号
📋 收到服务器消息: {"type":"info","msg":"ptt_enabled"}
⏹️ 录音已停止
📁 转换后的绝对路径: xxx
✅ 文件读取成功
📦 开始分片发送

⚠️ 注意事项

  1. 不要在公共 WiFi 测试

    • 公共 WiFi 通常有 AP 隔离
    • 设备间无法互相访问
  2. 确保服务器一直运行

    • 不要关闭服务器窗口
    • 观察服务器日志
  3. 手机不要锁屏

    • 锁屏可能断开 WiFi
    • 保持屏幕常亮
  4. 使用真机测试

    • 模拟器网络配置复杂
    • 真机测试更准确