2016-12-22 3 views
0

春のWebSocketチュートリアルでは、私はSTOMPは、コマンドを送信扱うのが好きならば、私が使用しなければならないことを伝えます(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html取得のWebSocketセッションデータSTOMPのSENDを渡す

私はしかしまたのWebSocketセッションが送信されたかを知る必要がある
@Controller 
public class GreetingController { 

    @MessageMapping("/greeting") { 
    public String handle(String greeting) { 
    return "[" + getTimestamp() + ": " + greeting; 
    } 

} 

これをチェックするために、

if (sessionIsAllowedToDoThings(sessionData)) {...} 

私はこの例のWebsocketセッションデータをどのように取得できますか?

答えて

1

あなたは以下のようにSTOMPエンドポイントを登録しながら、独自のインターセプタを定義することによって、WebSocketの接続中に春のセッションを維持することができます

@Override 
public void registerStompEndpoints(StompEndpointRegistry registry) { 
     registry.addEndpoint("/greeting").addInterceptors(new HttpHandshakeInterceptor()); 
} 

そしてHttpHandshakeInterceptorクラスは、春のAPIで定義されたHandshakeInterceptorインタフェースを実装し、beforeHandshakeを(オーバーライドする必要があります)afterHandshake()メソッド。 サンプルをチェックアウトする - Maintaining Spring session during STOMP websocket connection

関連する問題