WebSocket(Ⅱ)

春のWebSocket積分法

①:設定クラス、注釈のスキャン

WebSocketConfigurerを達成

輸入org.springframework.context.annotation.Bean。
輸入org.springframework.context.annotation.Configuration。
輸入org.springframework.web.socket.config.annotation.EnableWebSocket。
輸入org.springframework.web.socket.config.annotation.WebSocketConfigurer。
輸入org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry。
輸入org.springframework.web.socket.handler.TextWebSocketHandler。
@Configuration
@EnableWebSocket
パブリッククラスWebSocketConfigを実装WebSocketConfigurer {
@Override
公共ボイドregisterWebSocketHandlers(WebSocketHandlerRegistryレジストリ){
registry.addHandler(chatMessageHandler()、 "/ webSocketServer")addInterceptors(新しいChatHandshakeInterceptor())。
registry.addHandler(chatMessageHandler()、「/sockjs/webSocketServer").addInterceptors(new ChatHandshakeInterceptor())withSockJS()。

registry.addHandler(SocketHandlerの()、 "/ SocketServer")addInterceptors(新しいChatIntercepter())setAllowedOrigins( "*"); ... // 時々接続が失敗し、そこに傍受
}
@Bean
公共TextWebSocketHandler chatMessageHandler(){
新新を返しますChatMessageHandler();
}
}

②:HandshakeInterceptorインタフェース握手を達成

@オーバーライド

//握手接收器
パブリックブールbeforeHandshake(ServerHttpRequest要求、ServerHttpResponse応答、WebSocketHandler wsHandler、
地図<文字列オブジェクトが>属性)例外{スロー
// TODO自動生成方法のスタブが
falseを返します。
}
@Override

//握手后、存用户信息
公共ボイドafterHandshake(ServerHttpRequest要求、ServerHttpResponse応答、WebSocketHandler wsHandler、
例外例外){
// TODO自動生成方法スタブ
}

③WebSocketHandlerは、メッセージを送信、受信、インタフェースを実装します

@オーバーライド

//建立连接后
(WebSocketSessionセッション)afterConnectionEstablished公共ボイドが例外をスロー{
// TODO自動生成方法スタブ
}
@Override

//接收消息
公共ボイドのhandleMessage(WebSocketSessionセッション、WebSocketMessage <?>メッセージ)が例外をスロー{
// TODO自動生成方法スタブ
}
@Override

//连接失败
公共ボイドhandleTransportError(WebSocketSessionセッション、Throwableの例外)が例外をスロー{
// TODO自動生成方法スタブ
}
@Override

//关闭连接
afterConnectionClosed公共ボイド(WebSocketSessionセッション、CloseStatus closeStatus)は例外{スロー
// TODO自動生成方法スタブ
}
@Overrideを

メッセージの// WebSocketHandler処理部かどうか。このフラグが真と底部支持部のWebSocketメッセージサーバに設定されている場合、メッセージは、WebSocketの大きいまたは未知のメッセージサイズを分割することができ、及びのhandleMessage(WebSocketSession、WebSocketMessage)を呼び出す複数によって受信することができます。フラグWebSocketMessage.isLast()メッセージは、メッセージの一部であり、それは最後の部分であるかどうかを示します。
ブールsupportsPartialMessagesパブリック(){
//生成されるメソッドスタブTODO自動の
偽への復帰;
}

おすすめ

転載: www.cnblogs.com/tongCB/p/11281581.html