2016-09-18 8 views

答えて

2

私はsockjsなしでspring websocketを設定するための良い例は見つかりませんでしたが、私は春のドキュメンテーションサイトで有用なdocumentationを見つけました。 HTML5 WebSocket APIを使用してSpring WebSocketアプリケーションを作成する方法は?

まず:TextWebSocketHandlerまたはBinaryWebSocketHandlerを拡張し、@Component注釈とオーバーライドその適切なmethod.This クラスハンドラメソッドのような作品でそれに注釈を付けることクラスを作成します。コントローラで。

@Component 
public class SimpleWebSocketHandler extends TextWebSocketHandler { 
    @Override 
    protected void handleTextMessage(WebSocketSession session, 
      TextMessage message) throws Exception { 
     // Sends back response to client. 
     session.sendMessage(new TextMessage("Connection is all right.")); 
    } 
} 

第二:クラスを使用して、適切なmethod.ThisがWebSocketConfigurerを実装すること設定クラスを作成し、@Configuration@EnableWebSocket annoationsとオーバーライドして、それに注釈を付けますハンドラークラスを作成しました。

@Configuration 
@EnableWebSocket 
public class WebSocketConfigurations implements WebSocketConfigurer { 
    @Autowired 
    private SimpleWebSocketHandler simpleWebSocketHandler; 

    @Override 
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { 
     // Regsiters a handler for related endpoint. 
     registry.addHandler(simpleWebSocketHandler, "/chat"); 
    } 
} 

サード:あなた春のセキュリティ設定にすべてのWebSokcetエンドポイントを追加します。

httpSecurity.authorizeRequests() 
    .antMatchers("/chat").permitAll(); 

第四:我々は適切なURLで新しいのjavascriptのWebSocketオブジェを作成します。

// Create WebSocket Object. 
var ws = new WebSocket("ws://localhost:8080/chat"); 

// Runs when connecion is estabilished. 
ws.onopen = function() { 
    // Sends request to server with string value. 
    ws.send("webSocket"); 
}; 

// Runs when response is ready. 
// Use event to get response value. 
ws.onmessage = function (event) { 

}; 

注:WebSocketのURLのフォーマット:ws://domain:port/endpoint

+0

ありがとう、私は唯一の registry.addHandler(simpleWebSocketHandler、 "/chat").setAllowedOrigins("*")の後に春のWebSocketを使用することができます。 それ以外の場合は、302または403エラーが発生します。私の場合、Spring Security Configurationは本当に役に立ちません。 – user1742529

関連する問題