Конфигурация порта Socket.io с Heroku - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь заставить socket.io работать над моим приложением heorku, но я думаю, что у меня возникли проблемы с определением портов. На сервере у меня есть экспресс-приложение, которое прослушивает порт process.env или 5000, а порт socket.io прослушивает 8000.

Node.js

const express = require("express");
const app = express();
const server = require('http').Server(app)
const io = require('socket.io')(server)

const socketPort = 8000;
io.listen(socketPort);

const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server running on port ${port} !`));

И на моем внешнем интерфейсе у меня есть сокет для маршрутизации запросов на localhost: 8000

Reactjs

const socket = io('http://localhost:8000')

//Open connection to backend
socket.on('connect', ()=>{
    console.log("Connected");           
})

Он прекрасно работает, когда я его запускаюлокально, но я не могу заставить его работать на Heroku - GET http://localhost:8000/socket.io/?EIO=3&transport=polling&t=MszLUDm net::ERR_CONNECTION_REFUSED

Есть ли какой-то особый способ настроить эти порты? Насколько я знаю, я могу настроить только один порт process.env. Должен ли я вставить что-то в localhost: 8000 на внешнем интерфейсе?

Спасибо!

1 Ответ

0 голосов
/ 17 октября 2019

На стороне клиента я просто объявил сокет следующим образом:

const socket = io();

Оставив часть localhost:5000 в целом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...