У меня есть приложение реакции рендеринга на стороне сервера, в котором я перенаправил все http-вызовы на другой порт.Пожалуйста, смотрите код ниже для http прокси.
import proxy from "express-http-proxy";
const app = express();
const bodyParser = require("body-parser");
const http = require('http');
const httpProxy = require('http-proxy');
const PORT = process.env.PORT || 3001;
httpProxy.createServer({
target: 'ws://localhost:4000',
ws: true
}).listen(PORT); //Throws error since 3000 port is already used by //app.listen.
app.use(
"/api",
proxy("http://localhost:4000/", {
proxyReqOptDecorator(opts) {
opts.headers["x-forwarded-host"] = "http://localhost:4000/";
return opts;
}
})
);
app.post("/logger", (req, res) => {
logger.debug(req.body.data);
res.send({ status: "SUCCESS" });
});
app.listen(PORT, () => {
logger.debug(`Portal listening on ${PORT}`);
});
, что означает, что когда я делаю любые вызовы / api / endpoint, он будет перенаправлен на localhost: 4000 / endpoint, но будет отображаться в сети как http://localhost:3000/endpoint1
Я хочу того же поведения и с веб-сокетами.Я использую новый WebSocket (ws://localhost:3000/endpoint1
);Он должен перенаправить на ws://localhost:4000/endpoint1
.и должен отображаться на вкладке сети как ws://localhost:3000/endpoint1