На самом деле сначала, когда вы создали веб-приложение Azure и настроили его в Application settings
, вам необходимо включить функцию Web sockets
, как показано ниже.
Чтобы попытаться воспроизвести вашу проблему, я скачал последнюю версию spring-guides/gs-messaging-stomp-websocket
с https://github.com/spring-guides/gs-messaging-stomp-websocket/releases. И затем, чтобы создать исполняемый файл JAR с помощью gradlew build
и загрузить его по пути site/wwwroot
моего существующего WebApp.через консоль Kudo и настройте файл web.config
для его запуска.
Вот содержимое web.config
.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<!-- <httpPlatform processPath="%JAVA_HOME%\bin\java.exe" -->
<httpPlatform processPath="D:\Program Files\Java\jre1.8.0_181\bin\java.exe"
arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar "%HOME%\site\wwwroot\gs-messaging-stomp-websocket-0.1.0.jar"">
</httpPlatform>
</system.webServer>
</configuration>
Затем у меня возникла та же проблема, что и у вас, когда я открываю https://<my webapp name>.azurewebsites.net
и нажимаю кнопку Connect
, чтобы установить соединение через веб-сокет с сервером.
Я заметил, что websocket
запрос использует wss://
с SSL.Поэтому я попытался получить доступ к http://<my webapp name>.azurewebsites.net
для выполнения тех же операций, он работает неожиданно.
Я искал и исследовал его и пример исходного кодаЯ думаю, что в этом примере отсутствует поддержка Spring Security WebSocket.Вы можете обратиться к старому блогу Spring Preview Spring Security WebSocket Support и следовать документу Spring Security о WebSocket Configuration , чтобы исправить это.Существует два персональных репозитория GitHub BijanVan / Spring-Boot-Websocket-Sample и rstoyanchev / spring-websocket-portfolio , каждый из которых использует org.springframework.security.config.annotation.web.socket.AbstractSecurityWebSocketMessageBrokerConfigurer
для поддержки WebSocket с SSL.