【问题标题】:how to proxy socket.io to server with webpack-dev-server如何使用 webpack-dev-server 将 socket.io 代理到服务器
【发布时间】:2021-02-09 09:58:56
【问题描述】:
  • 节点:v12.19.0
  • Egg.js:v2.27.0
  • create-react-app: v4.0.0
  • http-proxy-middleware: v1.0.6
  • socket.io-client: v2.3.1

反应客户端:

import io from 'socket.io-client';
const socket = io({
  transports: ['websocket']
});
socket.on('connect', () => {
  console.log('socket.io client connected!');
});

setupProxy.js

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = (app) => {
  app.use(
    '/socket.io',
    createProxyMiddleware({
      target: 'http://127.0.0.1:7001',
      changeOrigin: true,
      ws: true
    })
  );
};

上面的代码不起作用。

websocket 运行良好,如果客户端代码如下:

const socket = io('http://127.0.0.1:7001', {
  transports: ['websocket']
});

【问题讨论】:

    标签: node.js socket.io create-react-app http-proxy-middleware


    【解决方案1】:

    我不知道为什么,但这对我有用。 (无需使用transports 选项)

    setupProxy.js

    const { createProxyMiddleware } = require('http-proxy-middleware');
    
    module.exports = (app) => {
      app.use(
        '/socket.io',
        createProxyMiddleware({
          target: 'ws://127.0.0.1:7001',
          changeOrigin: true
        })
      );
    };
    

    【讨论】:

      猜你喜欢
      • 2016-06-11
      • 2017-02-28
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      相关资源
      最近更新 更多