【发布时间】:2023-03-16 12:18:01
【问题描述】:
我查看了很多 Stack 页面,尽管尝试了很多变体,但仍找不到解决方案。
我正在使用 socket.io 创建一个多人游戏并在 react 中表达。利用 socket.io 的命名空间特性。
我的代码在本地环境中工作,我能够填充命名空间房间供用户连接并玩游戏。但是我上传到heroku,现在我收到了:
=GET path="/socket.io/?EIO=3&transport=polling&t=MrVg7lq" host=myherokudomain.com
来自服务器,所以我的连接正常,但没有找到所需的空间。
服务器代码如下:
const app = express();
app.use(cors({ credentials: true, origin: 'http://localhost:3000' }));
app.use(express.json());
const server = app.listen(8080, () => {
console.log('server is running on port 8080');
});
io = socket(server);
// ROOM 1
const room1 = io.of('/room1');
room1.on('connection', socket => {
socket.emit('RECEIVE_MESSAGE', { author: 'Server', message: 'Hi you are connected!' });
});
在服务器端的 index.js 中,我对数据库进行了部分设置:
const mongoose = require('mongoose');
const app = require('./src/app');
mongoose.connect(process.env.DATABASE_CONN, { useNewUrlParser: true }, () => {
app.listen(process.env.PORT || 3001);
});
在客户端我有以下内容:
this.socket = io('https://myherokudomain.com/room1');
我哪里出错了?我花了两天时间来解决这个问题,我没有进一步的进展。
如有任何问题,请提出任何帮助,感激不尽!
谢谢。
【问题讨论】: