Я хочу развернуть 2 отдельных проекта на одном компьютере Heroku. У меня есть приложение React для внешнего интерфейса и сервера nodejs сзади.
Они связаны через локальный узел в моей машине со следующей структурой. На стороне реакции, со следующей структурой клиента, я вижу, что напечатано Connected to : localhost:5000
. :
import openSocket from 'socket.io-client';
socket = openSocket("http://localhost:5000");
socket.on("connect", () => {
console.log("Connected to : http://localhost:5000");
});
Сторона узла похожа на следующую, и на моем локальном компьютере печатается Client connected
:
const server = require('http').createServer();
const io = require('socket.io')(server);
server.listen(5000, function(err) {
if (err) throw err;
console.log('Server Listening on port:', 5000);
});
io.on('connection', (client) => {
console.log("Client connected!");
}
После этого я развернул свои проекты в 2 разных кластерах в Heroku.
NodeJS работает на https://<herokuname>.herokuapp.com/
Поэтому мне интересно, что написать в методе openSocket
на стороне React для подключения socketio соединения в этом домене. Я пробовал следующие, но ни один из них не работал:
https://<herokuname>.herokuapp.com:5000/socket.io/?EIO=4&transport=websocket
https://<herokuname>.herokuapp.com/socket.io/?EIO=4&transport=websocket
ws://<herokuname>.herokuapp.com:5000/socket.io/?EIO=4&transport=websocket
ws://<herokuname>.herokuapp.com/socket.io/?EIO=4&transport=websocket