socket.io无法在React应用程序的Heroku上运行

时间:2020-03-17 18:03:34

标签: node.js reactjs sockets heroku

socket.io在本地主机上工作时遇到问题,但在部署到heroku时却没有问题。

在客户端,我有这个:

import socketIOClient from "socket.io-client";
const socket = socketIOClient("http://127.0.0.1:4001");

并在服务器端:

const http = require("http");
const socketIo = require("socket.io");
const server = http.createServer(app);

const io = socketIo(server);

io.on("connection", socket => {
  console.log("New client connected");
  socket.on("chat message", function(msg) {
    console.log("message: " + msg);
    io.emit("chat message", msg);
  });

这在本地主机上完美运行,但是在Heroku上会引发CORS错误。为了解决这个问题,我尝试更改此行:

const socket = socketIOClient("http://127.0.0.1:4001");

const socket = socketIOClient("https://radiant-retreat-86258.herokuapp.com/");

(这是应用程序的URL)。

我也尝试将代码更改为此:

import io from "socket.io-client";
const socket = io();

这两个选项都消除了CORS错误,但是网络显示连续的403,并且套接字实际上未执行应做的事情。

1 个答案:

答案 0 :(得分:0)

您可以使用cors() npm软件包https://www.npmjs.com/package/cors

相关问题