【问题标题】:Socket.io is working on localhost but not working after deploying heroku?Socket.io 在 localhost 上工作,但在部署 heroku 后无法工作?
【发布时间】:2022-01-15 11:50:53
【问题描述】:

这是我的套接字服务器的代码

const io = require("socket.io")(8080, {
cors: {
  // origin: "http://localhost:3000", 
     origin: "https://mern-bubble.herokuapp.com",
    }, 
});

这是我的客户端代码

useEffect(() => {
   // socket.current = io("ws://localhost:8800");
      socket.current = io("ws://mern-bubble.herokuapp.com:8800");

       socket.current.on("getUser", (data) => {
       console.log("data from socket", data);
       dispatch(updateUserInfo(data));
    });
 }, [dispatch]);

当我在本地主机上工作时它工作得很好,但是当我在 heroku 上部署我的项目时,socket.io 没有任何响应?

【问题讨论】:

    标签: javascript node.js express socket.io


    【解决方案1】:

    所以我认为端口 8800 没有在 heroku 上打开。您应该坚持使用端口 3000 并重试。 https://devcenter.heroku.com/articles/node-websockets#option-2-socket-io

    【讨论】:

      【解决方案2】:

      Heroku 的端口是在启动 Dyno 时动态分配的。不要硬编码端口8800,而是使用环境变量$PORT

      【讨论】:

        猜你喜欢
        • 2020-12-20
        • 2016-01-08
        • 2012-04-30
        • 2021-03-25
        • 2016-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多