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

Flutter与Node.js使用Socket.io连接时出现连接拒绝错误求助

解决Flutter Socket.io连接Node.js服务器出现Connection refused的问题

以下是针对你遇到的连接拒绝错误的具体解决步骤:

1. 修正客户端连接地址

如果是在Android模拟器上测试,localhost指向的是模拟器自身,无法访问电脑上的Node.js服务器,必须替换为模拟器的映射IP:

final String url = 'http://10.0.2.2:5000';

如果是真机测试,需要使用电脑的局域网IP(比如http://192.168.1.105:5000),确保手机和电脑在同一Wi-Fi网络下;iOS模拟器可以直接使用localhost。

2. 匹配Socket.io版本兼容性

Flutter的socket_io_client依赖版本必须和Node.js端的socket.io版本匹配,否则会出现连接失败。比如服务端用socket.io v4.x,客户端就对应socket_io_client v2.x或v4.x:

  • Flutter的pubspec.yaml:
dependencies:
  socket_io_client: ^2.0.3
  • Node.js的package.json:
"dependencies": {
  "socket.io": "^4.7.2"
}

3. 配置服务器跨域权限

Node.js端的Socket.io默认会拦截跨域请求,需要在初始化时配置CORS允许客户端访问:

const io = require("socket.io")(httpServer, {
  cors: {
    origin: "*", // 开发环境可临时用*,生产环境需指定具体域名
    methods: ["GET", "POST"]
  }
});

4. 验证服务器状态

  • 启动服务器后,确认控制台输出Listening on port 5000,说明服务器正常启动;
  • 用浏览器访问http://localhost:5000,能正常访问则说明服务端口没问题;
  • 检查端口是否被占用:Mac/Linux用lsof -i :5000,Windows用netstat -ano | findstr :5000,若被占用则更换端口或关闭占用程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:10:07