2016-12-22 43 views
0

春WebSocket的教程告訴,如果我喜歡來處理STOMP SEND命令,我將使用(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html獲取的WebSocket會話數據

@Controller 
public class GreetingController { 

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

} 

我需要但是也知道這WebSocket的會議將派遣這,爲了做檢查像

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

我如何因此可以得到這個例子的WebSocket會話數據?

回答

1

您可以定義自己的攔截器,同時註冊STOMP端點如下保持WebSocket連接在春季會議:

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

而且HttpHandshakeInterceptor類應該實現在Spring API定義HandshakeInterceptor接口和覆蓋beforeHandshake()afterHandshake()方法。 在這裏結帳樣品 - Maintaining Spring session during STOMP websocket connection