node.js - 在 Heroku [Node.js/React] 上部署 Socket.io 网站时出错
问题描述
我和我的团队在尝试将我们的 React 站点部署到 Heroku 时遇到了 Socket.io 问题。套接字在开发中工作正常。很确定它来自在 Heroku 上用于在服务器和客户端之间进行通信的 URL(在 Express 后端根目录中的 React 前端)。
控制台中的错误(大量错误,包括一个提到我们无法在代码中追溯的“localhost:3000”地址):
GET http://localhost:3000/socket.io/?EIO=4&transport=polling&t=NWT52j5 net::ERR_CONNECTION_REFUSED
获取https://appname.herokuapp.com/socket.io/?EIO=4&transport=polling&t=NWT52nn net::ERR_FAILED
这是我们的设置:
服务器端
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
var server = http.createServer(app);
// SOCKET.IO
const io = require("socket.io")(server, {
cors: {
origin: "https://appname.herokuapp.com",
methods: ["GET", "POST"]
}
});
客户端
import socketIOClient from "socket.io-client";
const socket = socketIOClient("https://appname.herokuapp.com");
非常感谢帮助,谢谢!
解决方案
推荐阅读
- java - Android - 按钮离开屏幕边缘,但文本视图适合屏幕
- python - 使用 Python (PSET6 CS50) 搜索一个单词在字符串中连续出现的次数
- ios - 函数被调用两次导致表视图重新加载两次
- reactjs - React Links - 部署后“在此服务器上找不到请求的 URL”
- android - 为什么kotlin通过变量名改变方法调用
- javascript - 将 Javascript 游戏添加到 HTML div
- amazon-web-services - 根据文件和请求对 s3 请求进行身份验证
- regex - 词法分析 - 从直接构造的 DFA 中提取标记
- swift - 如何在使用大标题时更改导航栏的背景颜色
- video - ffmpeg: Concatenating videos with different formats with as little quality loss as possible