You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native(Expo)安卓端无法接收WebSocket消息求助

解决安卓端WebSocket无法接收消息的建议

针对你遇到的Web和iOS端正常、安卓端WebSocket连接后收不到消息的问题,可以从以下几个方向排查:

  • 检查网络安全配置
    安卓9+默认禁用明文HTTP流量,如果你的WebSocket使用ws://协议,需在app.json中开启明文流量支持:

    {
      "expo": {
        "android": {
          "usesCleartextTraffic": true
        }
      }
    }
    

    如果使用wss://,确认服务器SSL证书有效,避免因证书问题导致隐性连接失败。

  • 排查连接状态的隐性异常
    不要仅依赖onopen回调判断连接状态,添加onerror和onclose监听查看是否有未捕获的错误:

    ws.onerror = (err) => console.error('WebSocket错误:', err);
    ws.onclose = (evt) => console.log('连接关闭:', evt.code, evt.reason);
    

    这能帮你确认连接是否真的持续活跃。

  • 确认消息监听的绑定逻辑
    确保onmessage回调在安卓端被正确挂载,可尝试在onopen回调内重新绑定监听,避免作用域或初始化顺序问题:

    ws.onopen = () => {
      console.log('连接成功');
      ws.onmessage = (evt) => {
        console.log('收到消息:', evt.data);
        // 你的消息处理逻辑
      };
    };
    
  • 升级Expo SDK版本
    部分旧版Expo SDK存在安卓端WebSocket兼容性问题,升级到最新稳定版可解决不少已知bug。

  • 在真实设备测试
    安卓模拟器的网络环境可能存在代理或端口映射问题,建议在真实安卓设备上验证,排查是否是模拟器的网络异常导致。

内容的提问来源于stack exchange,提问作者Waddas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:35:11