【问题标题】:nodejs and react diferent ports for socket.io? [closed]node js并为socket.io做出不同的端口反应? [关闭]
【发布时间】:2021-03-14 20:51:30
【问题描述】:

我的 react 项目在 3000 端口启动,nodejs 服务器在 8080 端口启动

如果服务器套接字在不同的端口上,我如何将它们连接到客户端?

【问题讨论】:

标签: node.js reactjs socket.io


【解决方案1】:

我做了something recently,所以我会提出同样的建议。你可以使用这样的东西:

const express = require("express");
const { createProxyMiddleware } = require('http-proxy-middleware');
const http = require("http").Server(app);
const io = require("socket.io")(http);
const port = 3100;

app.use('/', createProxyMiddleware({
   target: "http://localhost:3000",
   changeOrigin: true
}));

const onConnection = socket => {
  socket.on("channel", data => socket.broadcast.emit("channel", data));
};

io.on("connection", onConnection);

http.listen(port, () => {
  console.log("Server started in port " + port + ".");
});

如果你只是想运行一个普通的 Node JS + React JS 服务器来绕过CORS,你可以在package.json 中使用proxy 选项:

"proxy": "http://my-api-server:port",

更多详情可以阅读Using React's Proxy to get ahead of CORS & use HTTPS for API calls

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多