让socket io连接一个新的Vite应用程序有问题。我已经用同样的代码,用Create React应用程序实现了这一点
服务器:
const app = express();
app.use(cors());
const server: http.Server = http.createServer(app);
const io = new Server(server);
io.on("connection", (socket) => {
console.log("connected");
});
客户:
useEffect(() => {
const socket = io("/");
}, []);
useEffect位于应用程序的主页面上,并且肯定会被调用,但我的服务器文件中的控制台日志从未被调用。(服务器肯定正在运行)
我的vite配置看起来像这样,以防万一:
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
server: {
port: 3000,
proxy: {
"/api": {
target: "http://localhost:5000",
changeOrigin: true,
secure: false,
},
},
},
});
1条答案
按热度按时间vecaoik11#
我能够将
"http://localhost:5000"
(我的服务器所在的位置)传递给客户端io
调用,现在它可以工作了。当我使用Create React App时不需要这个的原因是因为我的代理已经设置为"http://localhost:5000"
。不幸的是,Vite中的代理设置不同。