【发布时间】:2021-08-24 02:51:25
【问题描述】:
我制作了一个完整的堆栈 mern 应用程序,并将 nodejs 后端托管在 heroku 中,前端在 netlify 上运行。所有 .env 变量都为 heroku 和 netlify 设置,我也设置了 cors()。该网站具有聊天功能,因此我将 socket.io 用于过去在开发中运行良好的功能。
这是指向我的 heroku 服务器(后端 api)https://ural-shop.herokuapp.com/的链接
在 messenger.js 文件中(这是发生套接字连接的地方)
import React, { useEffect, useState, useRef } from "react";
import io from "socket.io-client";
const socketRef = useRef();
useEffect(() => {
socketRef.current = io.connect("https://ural-shop.herokuapp.com/");
},[]);
index.js 文件(后端的主文件)
const express = require("express");
const app = express();
const http = require("http");
const server = http.createServer(app);
const socket = require("socket.io");
app.use(cors());
const io = socket(server, {
cors: { origin: "https://ural-shop.herokuapp.com/" },
});
server.listen(PORT, () => console.log(`Server on port ${PORT}`));
我只放文件的必要部分。
从谷歌开发者控制台我看到了这个。
【问题讨论】:
标签: node.js reactjs express heroku socket.io