Я просмотрел множество страниц стека и не могу найти решение, несмотря на множество вариантов.
Я создаю многопользовательскую игру с socket.io и выражаюсь в реакции.Используя функцию пространства имен в файле 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');
Куда я иду не так?Мне потребовалось два дня, чтобы разобраться в этом, и я больше не буду двигаться вперед.
Любые вопросы, пожалуйста, задавайте и любую помощь, с благодарностью получили!
Спасибо.