Node.js Socket.io未在Heroku上连接
我正在NodeJS后端使用Socket.io。但是,插座不工作。例如,一个人应该接收一个链接,然后用相同的代码将它们发送到所有其他房间,但代码没有执行。在我的heroku日志中,我没有收到任何错误,但当我检查我得到的页面元素时 轮询xhr.js:268gethttps://localhost:5000/socket.io/?EIO=3&transport=polling&t=NDADDNH 网络::错误连接被拒绝 及 未能加载资源:网络::错误\u连接\u被拒绝 我在这个论坛上研究过类似的问题,并做了一些修改,但都没有解决这个问题。还有一堆帖子回答了ws的一般解决方案,我一点也不了解:/ 据我所知,问题可能与我的端口有关?我遵循了其中的一些,但同样的错误仍然发生 Socket.io: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被拒绝 我在这个论坛上研究过类似的问题,
/***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是如何工作的,我只是按照教程进行了部署。“我的文件顺序”的前端位于服务器文件中。