Я создал CRA в контейнере Docker, и я пытаюсь прокси-сервер веб-сокетов на другой контейнер с Python-сервер. Я на всю жизнь не могу заставить работать соединение.
Я проверил, что сервер работает, выставив порт вне докера и подключившись к нему из браузера напрямую - он подключается иработает.
Я также могу убедиться, что соединение внутри моего докера CRA настроено правильно - в нем я запускаю оболочку и выполняю
> WS = require('ws')
> new WS(`ws://server:8765/ws/foo`).addEventListener('open', e => console.log('open'))
, и это соединяет ипечатает open
тоже. (Вот почему у меня нет тега 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"
},