Socket.io не подключается к Heroku - PullRequest
0 голосов
/ 14 июля 2020

Я использую Socket.io в своем NodeJS бэкэнде. Однако розетки не работают. Например, нужно получить ссылку, а затем отправить ее во все другие комнаты под тем же кодом, но код не выполняется. В моих журналах heroku я не получаю ошибок, но когда я проверяю элемент, страница я получаю

polling-xhr. js: 268 GET https://localhost: 5000 / socket.io /? EIO = 3 & transport = polling & t = NDADDNH net :: ERR_CONNECTION_REFUSED

и

Не удалось загрузить ресурс: net :: ERR_CONNECTION_REFUSED

Я изучил похожие проблемы на этом форуме и внес несколько изменений но ни один из них не решил проблему. Также куча сообщений отвечает с решениями для ws в целом, которые я вообще не понимаю: /

Из того, что я читал, проблема может быть связана с моими портами? Я следил за некоторыми из них, но все равно возникали те же ошибки.

Socket.io:

/***BACKEND***/
const express = require('express');
const path = require('path');

const app = express();

let rooms = [];

/***SERVER***/
const port = process.env.PORT || 5000;
server = app.listen(port, function(){
    console.log('App is listening on port ' + port)
});


/***SOCKET.IO***/
const socket = require('socket.io');
io = socket(server);

io.on('connection', (socket) => {
 //bunch of functionality
}

, а затем в моем клиенте я использую

this.socket = io('localhost:5000');

//one of the functions
        this.syncQueue = () => {
            this.socket.emit('SYNC_QUEUE', {
                activeRoom: this.props.getRoom()
            });
        }

        this.socket.on('RECEIVE_QUEUE', newQueue => {
            props.onAddToQueue(newQueue);
        });

FYI Все работает на localhost

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Localhost не будет работать на сервере, и если вы используете пространство имен по умолчанию, вам не нужно указывать URL-адрес. Так что попробуйте это, this.socket = io()

1 голос
/ 14 июля 2020

На стороне клиента вы пытаетесь подключиться к localhost: 5000 вместо URL-адреса, предоставляемого Heroku. Попробуйте это this.socket = io('heroku url goes here').

...