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

Flutter应用Socket.io连接失败求助:WebSocket升级异常

解决WebSocket连接升级失败问题

问题根源

  1. 客户端传输方式拼写错误:pooling应为polling,导致客户端无法正确触发轮询 fallback 机制,连接流程异常。
  2. 服务端强制仅使用websocket传输,而Socket.io客户端默认会先发起轮询请求再升级为WebSocket,这种配置冲突直接引发连接升级失败。

修复步骤

1. 修正客户端拼写错误

将客户端配置中的'pooling'改为'polling',确保传输方式识别正确:

IO.Socket socket = IO.io(API_HOST, <String, dynamic>{
  'transports': ['websocket', 'polling'], // 修正拼写错误
  'autoConnect': false,
});
socket.connect();
socket.onError((data) => {print("$data");});

2. 调整服务端传输配置(增强兼容性)

修改服务端transports配置,同时支持轮询和WebSocket,适配客户端默认连接流程:

const io = socketio(server, {
  cors: {
    origin: "*",
    methods: ["GET", "POST"]
  },
  transports: ['polling', 'websocket'] // 同时启用两种传输方式
});

额外检查项

  • 确认API_HOST地址正确,若使用WebSocket协议可直接用ws://或wss://前缀,也支持http:///https://自动转换。
  • 检查服务端端口是否正常监听,防火墙/安全组是否开放对应端口,确保客户端能正常访问服务端。

内容的提问来源于stack exchange,提问作者apollon-star

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:31:49