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

Flutter应用Pusher实时数据接收异常:模拟器正常,真机无数据

Flutter Pusher实时数据接收问题:模拟器正常,实体机无数据

针对你遇到的模拟器能正常接收Pusher实时数据,但实体机无法接收的问题,整理以下排查和解决步骤:

1. 排查网络环境差异

模拟器通常使用WiFi网络,而实体机可能使用移动数据。部分运营商会限制WebSocket连接(Pusher默认采用WebSocket),可以先切换实体机到WiFi环境测试是否能正常接收数据。如果必须使用移动数据,可在Pusher初始化时开启HTTP轮询 fallback:

await pusher.init(
  apiKey: 'xxxxxxxxxx',
  cluster: 'xxxxxxx',
  onEvent: (myEvent) {
    setState(() {
      data = myEvent.data;
    });
  },
  options: PusherOptions(
    encrypted: true,
    useTLS: true,
    activityTimeout: 120000, // 开启HTTP轮询 fallback
  ),
);

2. 补充Android权限

仅添加INTERNET权限可能不足以维持稳定连接,在AndroidManifest.xml中补充必要权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
  • ACCESS_NETWORK_STATE:让应用检测当前网络状态,避免断网时无效重连
  • WAKE_LOCK:防止应用在后台时被系统休眠,维持Pusher连接

3. 增强日志定位问题

在代码中添加连接状态和错误日志,明确实体机上的问题环节:

Future<void> _initPusher() async {
  PusherChannelsFlutter pusher = PusherChannelsFlutter.getInstance();
  try {
    await pusher.init(
        apiKey: 'xxxxxxxxxx',
        cluster: 'xxxxxxx',
        onEvent: (myEvent) {
          print("[PUSHER] 收到事件: ${myEvent.eventName},数据: ${myEvent.data}");
          setState(() {
            data = myEvent.data;
          });
        },
        onConnectionStateChange: (state) {
          print("[PUSHER] 连接状态变化: ${state.currentState} -> ${state.previousState}");
        },
        onError: (error) {
          print("[PUSHER] 错误: ${error.message},代码: ${error.code}");
        });

    await pusher.subscribe(channelName: 'my_channel');
    await pusher.connect();
  } catch (e) {
    if (kDebugMode) {
      print("[PUSHER] 初始化错误: $e");
    }
  }
}

运行实体机后查看Logcat日志,确认是连接失败、订阅失败还是未收到事件。

4. 检查系统限制

  • 省电策略:部分安卓厂商的省电模式会强制关闭后台应用的网络连接,将你的应用加入系统省电白名单
  • 代理设置:实体机若开启了代理,可能拦截Pusher的WebSocket请求,尝试关闭代理测试
  • 系统版本:确认实体机安卓版本是否满足Pusher SDK最低要求(通常Android 6.0以上无问题,低版本需额外配置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:53:12