私はSockJs(v1.1.1)でSpring Websocketをクライアント上のSTOMP上で使用しています。以下のコードでクライアントを作成します。SockJsでSpring WebsocketをXHRストリーミングからWebsocketに切り替える
SockJS = require('sockjs-client')
Stomp = require('webstomp-client')
stompClient = Stomp.over(new SockJS(url))
うまくいきます。しかし、それはデフォルトで転送としてxhr_streaming
を使用します。それは私には望ましくありません。 websocket
トランポートに切り替えたい
stompClient = Stomp.over(new SockJS(url, null, {transports:'websocket'}))
しかし、このアプローチは私のためには機能しません。これは、イベントに落ちる:
code: 2000
reason: "All transports failed"
私の春のWebSocketの設定は非常に簡単です:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractSessionWebSocketMessageBrokerConfigurer<ExpiringSession> {
@Override
public void configureStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/myEndpoint").setAllowedOrigins("*")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/queue/", "/topic/");
registry.setApplicationDestinationPrefixes("/app");
}
}
私はxhr_streaming
に直面する主な問題は、すべてのストリームの要求は、ユーザーセッションの最終アクセス時刻を更新することです(私が使用して春セッションも同様)。しかし、それは私のアプリケーションにとって望ましい動作ではありません。だから私はそれを修正することができますか?そして、websocket
トランスポートのヘルプですか?前もって感謝します。