Не удается подключиться к веб-сокету Tomcat за Apache - PullRequest
0 голосов
/ 20 февраля 2019

Когда я пытался подключиться к веб-сокету Spring Boot из Android-клиента Stomp, он не подключается, и журнал Catalina показывает

Handshake failed due to invalid Upgrade header: null

Сервер Tomcat работает за Apache, а сервер Apache работает по протоколу https. Я не добавил https в Tomcat . Все HTTP-запросы перенаправляются на https, вот как я пытался подключиться к веб-сокету

mStompClient = Stomp.over(Stomp.ConnectionProvider.JWS, "wss://chat.example.com/ws/chat/websocket", headers);

, но он работает при работе на локальной машине

mStompClient = Stomp.over(Stomp.ConnectionProvider.JWS, "http://10.0.2.2:8080/chat/ws/chat/websocket", headers);

это моя конечная точка настройки

registry.addEndpoint("/chat").setHandshakeHandler(new HandShakeHandler()).withSockJS();

Я включил mod proxy wstunnel и в конфигурации виртуального хоста я добавил

ProxyPass / http://localhost:8080/chat/
proxyPassReverse / http://localhost:8080/chat/
ProxyPass /wss/ ws://localhost:8080/chat/

Какя могу это исправить?

1 Ответ

0 голосов
/ 21 февраля 2019

Я получил ответ от ошибки этого сервера lin.Я должен добавить

RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule /api/(.*) ws://newapp.example.com:8080/api/$1 [P]

и изменить последнюю строку на

RewriteRule /chat/(.*) ws://localhost:8080/chat/chat/$1 [P]

и теперь он подключен

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