Node.js Socket.io未在Heroku上连接

Node.js Socket.io未在Heroku上连接,node.js,reactjs,sockets,socket.io,Node.js,Reactjs,Sockets,Socket.io,我正在NodeJS后端使用Socket.io。但是,插座不工作。例如,一个人应该接收一个链接,然后用相同的代码将它们发送到所有其他房间,但代码没有执行。在我的heroku日志中,我没有收到任何错误,但当我检查我得到的页面元素时 轮询xhr.js:268gethttps://localhost:5000/socket.io/?EIO=3&transport=polling&t=NDADDNH 网络::错误连接被拒绝 及 未能加载资源:网络::错误\u连接\u被拒绝 我在这个论坛上研究过类似的问题,

我正在NodeJS后端使用Socket.io。但是,插座不工作。例如,一个人应该接收一个链接,然后用相同的代码将它们发送到所有其他房间,但代码没有执行。在我的heroku日志中,我没有收到任何错误,但当我检查我得到的页面元素时

轮询xhr.js:268gethttps://localhost:5000/socket.io/?EIO=3&transport=polling&t=NDADDNH 网络::错误连接被拒绝

未能加载资源:网络::错误\u连接\u被拒绝

我在这个论坛上研究过类似的问题,并做了一些修改,但都没有解决这个问题。还有一堆帖子回答了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);
        });

仅供参考,所有东西都在localhost上工作

在客户端,您尝试连接到localhost:5000,而不是Heroku提供的URL。试试这个
this.socket=io('heroku url在这里')

在客户端,您正在尝试连接到localhost:5000,而不是heroku提供的url。试试这个
this.socket=io('heroku url在这里')

Localhost将无法在服务器上工作,如果使用默认名称空间,则无需指定url。因此,请尝试这样做,
this.socket=io()
本地主机将无法在服务器上工作,如果您使用的是默认名称空间,则无需指定URL。所以试试这个,
this.socket=io()

我需要在服务器端更改什么吗?我想我不会再使用端口5000了?您已经在这里这样做了:
const-port=process.env.port | 5000
这是说如果process.env.port不可用,请使用端口5000我需要在服务器端更改什么吗?我想我不会再使用端口5000了?您已经在这里这样做了:
const-port=process.env.port | 5000
这是说如果process.env.port不可用,请使用端口5000这很好,谢谢!这么愚蠢的错误,我感到羞愧lol@ZKJ您的客户端和服务器在同一个URL上吗?@ZKJ真正的程序员总是会遇到错误。:)。祝你好运。@DowenRobinson我相信是的,我不完全确定Heroku是如何工作的,我只是按照教程进行了部署。我的文件顺序在服务器文件的前端。这很有效,谢谢!这么愚蠢的错误,我感到羞愧lol@ZKJ您的客户端和服务器在同一个URL上吗?@ZKJ真正的程序员总是会遇到错误。:)。祝你好运。@DowenRobinson我相信是的,我不完全确定Heroku是如何工作的,我只是按照教程进行了部署。“我的文件顺序”的前端位于服务器文件中。