Я развернул приложение на Heroku. Когда я пытаюсь подключиться из другой системы, он работает нормально. Но когда я пытаюсь получить доступ к нему из системы моей компании, он получает этот URL -
o.s.w.s.s.s.DefaultHandshakeHandler : Handshake failed due to invalid Upgrade header: null
Я бросил это , но не знаю, как настроить nginx на Heroku. Также я где-то читал, что все dynos используют общее время выполнения, поэтому его нельзя настроить.
Я использую SockJs из внешнего интерфейса и Spring-Boot из внутреннего интерфейса.
Запрос из браузера -
GET wss://ketu.herokuapp.com/gs-guide-websocket/873/l0ffiwck/websocket?
token=%22005e6574-9c25-4071-954b-70c8f2c79de2%22 HTTP/1.1
Host: ketu.herokuapp.com
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: https://ketu.herokuapp.com
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: JSESSIONID=4CE4921FCD813B9A4DBC7656F6D80286
Sec-WebSocket-Key: tSa9El0a/TL1fVdW586mhw==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Мой WebSocketConfig -
@EnableWebSocketMessageBroker
@Configuration
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.setUserDestinationPrefix("/user");
registry.enableSimpleBroker("/topic","/queue","/user");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/gs-guide-websocket").addInterceptors(new HandshakeInterceptorIml()).withSockJS();
}
}