Node.js Socket.io应用程序在本地工作,但不在Heroku上工作

Node.js Socket.io应用程序在本地工作,但不在Heroku上工作,node.js,reactjs,heroku,socket.io,Node.js,Reactjs,Heroku,Socket.io,我正在使用socket.io创建一个React应用程序和一个节点服务器,它们应该通过socket相互通信。当我把所有东西都连接到本地计算机上时,我不会遇到任何问题。但是,当我使用部署的服务器时,我的React应用程序在控制台中出现以下错误: Access to XMLHttpRequest at 'https://{URL TO MY HEROKU SERVER}/socket.io/?EIO=4&transport=polling&t=NNjgExO' from origin

我正在使用socket.io创建一个React应用程序和一个节点服务器,它们应该通过socket相互通信。当我把所有东西都连接到本地计算机上时,我不会遇到任何问题。但是,当我使用部署的服务器时,我的React应用程序在控制台中出现以下错误:

Access to XMLHttpRequest at 'https://{URL TO MY HEROKU SERVER}/socket.io/?EIO=4&transport=polling&t=NNjgExO' 
from origin '{URL FOR MY HEROKU REACT APP}' has been blocked by CORS policy: 
Response to preflight request doesn't pass access control check: 
The 'Access-Control-Allow-Origin' header contains the invalid value '48506'.
在将应用程序放在一起时,我在本地遇到了类似的问题,并了解到我需要在服务器中使用cors来允许连接。当我在本地机器上这样做时,它工作了。然而,现在我已经部署了它,我又遇到了这种类型的错误。我知道我需要更改某些cors设置,但我真的不知道需要更改什么。
以下是服务器代码:

const server = http.createServer(app);
const io = socketio(server, {
  cors: {
    allRoutes: true,
    origin: PORT,
    methods: ["GET", "POST"],
    allowedHeaders: ["my-custom-header"],
    credentials: true,
  },
});
以下是用于连接的React应用程序代码:

socket = io(ENDPOINT, {
      withCredentials: true,
      extraHeaders: {
        "my-custom-header": "abcd",
      },
    });

EDNPOINT指的是我的本地主机服务器或已部署服务器的url,具体取决于我工作的环境。任何帮助都将不胜感激

我通过反复试验,设法找出了cors设置。对于任何感兴趣的人,以下是适合我的设置:

服务器:

const cors = require("cors");
const socketio = require("socket.io");

const app = express();
app.use(cors());

const server = http.createServer(app);

const io = socketio(server, {
  cors: {
    origin: "*",
    methods: ["GET", "POST"],
    allowedHeaders: ["content-type"],
  },
});
客户:

socket = io(ENDPOINT);