无法使用create-react-app代理Websocket

时间:2019-10-19 18:03:12

标签: websocket proxy create-react-app

我在docker容器中创建了一个CRA,我试图将websocket代理到另一个运行python后端的容器。我一生无法连接正常。

我通过暴露docker的端口外部并从浏览器直接连接到它来验证服务器是否正常工作-它可以连接并正常工作。

我还可以验证CRA泊坞站内的连接 是否已正确设置-在其中启动外壳并执行

> WS = require('ws')
> new WS(`ws://server:8765/ws/foo`).addEventListener('open', e => console.log('open'))

,它也可以连接并打印open。 (这就是为什么我这里没有docker标记的原因,据我了解,这消除了docker成为可能的问题,因为我已经确认我可以相互连接)

我唯一能想到的是代理配置错误

这就是我要在客户端上执行的操作

const socket = new WebSocket(`ws:localhost/ws/foo`)

我的代理设置

const proxy = require("http-proxy-middleware")

module.exports = (app) => {
as I can tell. Need to circle back
    app.use(`/ws*`, proxy({
        target: 'ws://server:8765/ws',
        changeOrigin: true,
        ws: true,
    }))
}

我已经尝试过使用/ws并将URL放在proxy子句中,而不是use并没有任何作用

我真的不确定还有什么可以错过的。

这是我的依赖版本

    "dependencies": {
        "@reach/router": "^1.2.1",
        "http-proxy-middleware": "^0.20.0",
        "react": "^16.10.2",
        "react-dom": "^16.10.2",
        "react-scripts": "3.2.0",
        "styled-components": "^4.4.0"
    },

0 个答案:

没有答案