如何修改Socket.io代码实现跨电脑多人游戏联机?
跨设备Socket.IO游戏联机的设置与代码修改步骤
一、前端代码修改
- 将前端代码中的
localhost替换为服务器所在电脑的实际IP地址(局域网用内网IP,公网用公网IP),示例:const socket = io("http://192.168.1.100:3000");
二、服务器端配置调整
- 默认Socket.IO可能仅监听
localhost,需修改为监听所有网络接口,同时添加跨域(CORS)配置避免浏览器拦截请求:const io = require('socket.io')(); const port = process.env.PORT || 3000; io.listen(port, { cors: { origin: "*", // 开发阶段临时放开,生产环境需指定前端具体IP/域名 methods: ["GET", "POST"] } });
三、网络环境配置
- 局域网场景:确保两台设备在同一网络下,关闭服务器电脑的防火墙,或在防火墙中添加3000端口的入站允许规则。
- 公网场景:在服务器所在路由器设置端口映射,将路由器3000端口转发至服务器内网IP的3000端口;同时关闭服务器防火墙或开放对应端口。
四、验证步骤
- 启动服务器后,在另一台设备的浏览器打开前端页面,查看控制台是否有连接成功日志。若失败,排查以下点:
- 服务器IP是否输入正确
- 3000端口是否正常开放
- 两台设备网络是否互通(可通过
ping 服务器IP命令测试)
内容的提问来源于stack exchange,提问作者karsh
相关产品推荐
相关产品推荐

