WebSocket через Yamux через WebSocket не работает - PullRequest
0 голосов
/ 12 марта 2020

Я экспериментировал hashicorp / yamux над гориллой / websocket и застрял.

Я начал с ванильного WebSocket, используя пример echo из проекта Gorilla WebSocket. Это была очень простая настройка клиент-сервер. Затем представьте себе, что сервер теперь находится за брандмауэром, поэтому клиент не может установить прямое соединение с ним. Поэтому я представил хаб и агент . концентратор должен быть общедоступным и подключаемым для клиента . агент будет работать вместе с сервером , который сначала установит соединение WebSocket с хабом , а затем мультиплексирует соединение, используя Yamux, чтобы хаб может затем инициировать запросы к серверу . Таким образом, я эффективно «выставил» сервер за брандмауэр.

Для обычных конечных точек HTTP все хорошо. клиент может отправлять запросы к хабу , который передает эти запросы прокси агенту , используя соединение WebSocket, инициируемое хабом , и затем концентратор будет далее передавать эти запросы на сервер .

Однако этот прием не работал с конечными точками WebSocket. Например, клиент может получить доступ к HTML на / через цепочку агент-хаб-агент , но произойдет сбой на пути /echo, который конечная точка WebSocket.

Мой вопрос: этот WebSocker поверх Yamux поверх WebSocket принципиально невозможен, или мне просто нужны дополнительные строки, чтобы все заработало? Вот код Я экспериментировал. Очень ценю вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...