【问题标题】:socket.io not working on Heroku on React appsocket.io 无法在 React 应用上的 Heroku 上运行
【发布时间】:2020-06-28 20:36:51
【问题描述】:

我遇到了 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,并且套接字实际上并没有做它应该做的事情。

【问题讨论】:

    标签: node.js reactjs sockets heroku


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-10-20
      • 1970-01-01
      • 2017-07-01
      • 2014-01-24
      • 2019-02-11
      • 2015-11-30
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多