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

Node.js+Socket.IO服务端与Android客户端XHR Polling错误排查求助

Socket.IO Android客户端XHR Polling错误排查建议

背景

已搭建Socket.IO服务端-客户端架构:

  • Node.js服务端代码验证正常,Node.js客户端测试脚本可正常收发消息
  • Android客户端尝试使用dev.icerock.moko:socket-io:0.4.0和io.socket:socket.io-client:1.0.0两个库,均出现XHR Polling错误,错误日志如下:
moko.socket: error io.socket.engineio.client.EngineIOException: xhr poll error
moko.socket: error io.socket.client.SocketIOException: Connection error

服务端运行在本地机器,Android设备与服务端处于同一WiFi网络,尝试NGROK代理后问题仍存在。

排查步骤

1. 修正服务端IP配置不一致问题

服务端启动日志显示监听地址为http://192.168.0.191:3000,但Android客户端代码中连接的是http://192.168.0.10:3000,IP地址不匹配是直接导致连接失败的核心问题,先修正客户端连接地址为服务端实际IP。

2. 验证Socket.IO版本兼容性

不同版本的Socket.IO客户端与服务端存在严格兼容性要求:

  • 执行npm list socket.io查看服务端socket.io包版本
  • 匹配客户端库版本:
    • io.socket:socket.io-client:1.0.0对应服务端Socket.IO v1.x
    • dev.icerock.moko:socket-io:0.4.0基于Socket.IO v4.x,需服务端为v4.x版本
      若版本不兼容,升级/降级服务端或客户端至匹配版本。

3. 配置服务端CORS策略

默认情况下Socket.IO服务端的CORS配置可能限制跨域请求,修改服务端代码添加显式CORS配置:

const io = new Server(server, {
  cors: {
    origin: "*", // 测试阶段允许所有来源,生产环境指定具体域名/IP
    methods: ["GET", "POST"]
  }
});

4. 调整客户端传输方式

强制客户端使用WebSocket传输,跳过XHR Polling尝试:

  • 对于moko socket-io库:
config = SocketOptions(
    queryParams = mapOf("payload" to "MyPayload"),
    transport = SocketOptions.Transport.WEBSOCKET
)
  • 对于官方socket.io-client库:
val opts = IO.Options()
opts.transports = arrayOf("websocket")
val socket = IO.socket("http://192.168.0.191:3000", opts)

5. 检查Android网络配置细节

  • 确认network_security_config.xml中配置的域名与服务端IP一致(当前配置为192.168.0.191,需与客户端连接地址匹配)
  • 确保AndroidManifest.xml中android:usesCleartextTraffic="true"已正确配置,且无其他网络安全策略覆盖
  • 关闭Android设备上的代理、VPN等网络拦截工具,通过ping服务端IP验证网络连通性

6. 增加日志详细度

  • 服务端开启debug日志:
const io = new Server(server, {
  // ...其他配置
  logger: true,
  transports: ["websocket", "polling"]
});
  • Android客户端捕获完整异常堆栈:
on(SocketEvent.Error) {
    it.printStackTrace()
    println("moko.socket: error ${it.message}")
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 16:23:22