クラス SessionRepositoryMessageInterceptor<S extends Session>
java.lang.ObjectSE
org.springframework.session.web.socket.server.SessionRepositoryMessageInterceptor<S>
- 型パラメーター:
S
-Session
型
- 実装されたすべてのインターフェース:
org.springframework.messaging.support.ChannelInterceptor
,org.springframework.web.socket.server.HandshakeInterceptor
public final class SessionRepositoryMessageInterceptor<S extends Session>
extends ObjectSE
implements org.springframework.messaging.support.ChannelInterceptor, org.springframework.web.socket.server.HandshakeInterceptor
ChannelInterceptor
および HandshakeInterceptor
として機能し、Session.getLastAccessedTime()
が最新であることを確認します。
- ハンドシェイクが実行されるときに、
Session.getId()
を WebSocket セッション属性に関連付けます。これは、後でメッセージをインターセプトしてSession.getLastAccessedTime()
が確実に更新されるようにするときに使用されます。 setMatchingMessageTypes(Set)
に対応するSimpMessageType
を持つMessage
をインターセプトし、Session
の最終アクセス時刻を更新します。Session
の有効期限が切れると、Message
は続行できなくなります。
SessionRepositoryMessageInterceptor
を機能させるには、ChannelInterceptor
および HandshakeInterceptor
として登録する必要があります。
- 導入:
- 1.0
コンストラクターのサマリー
コンストラクターコンストラクター説明SessionRepositoryMessageInterceptor
(SessionRepository<S> sessionRepository) 新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明void
afterHandshake
(org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response, org.springframework.web.socket.WebSocketHandler wsHandler, ExceptionSE exception) boolean
beforeHandshake
(org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response, org.springframework.web.socket.WebSocketHandler wsHandler, MapSE<StringSE, ObjectSE> attributes) static StringSE
getSessionId
(MapSE<StringSE, ObjectSE> attributes) org.springframework.messaging.Message<?>
preSend
(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) void
setMatchingMessageTypes
(SetSE<org.springframework.messaging.simp.SimpMessageType> matchingMessageTypes) 一致するようにSimpMessageType
を設定します。static void
setSessionId
(MapSE<StringSE, ObjectSE> attributes, StringSE sessionId) クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.messaging.support.ChannelInterceptor から継承されたメソッド
afterReceiveCompletion, afterSendCompletion, postReceive, postSend, preReceive
コンストラクターの詳細
SessionRepositoryMessageInterceptor
新しいインスタンスを作成します。- パラメーター:
sessionRepository
- 使用するSessionRepository
。null にはできません。
メソッドの詳細
setMatchingMessageTypes
public void setMatchingMessageTypes(SetSE<org.springframework.messaging.simp.SimpMessageType> matchingMessageTypes) 一致するように
SimpMessageType
を設定します。Message
が一致する場合、preSend(Message, MessageChannel)
は、Session
が期限切れになっていないことを確認し、Session.getLastAccessedTime()
を更新します。デフォルトは: SimpMessageType.CONNECT、SimpMessageType.MESSAGE、SimpMessageType.SUBSCRIBE、SimpMessageType.UNSUBSCRIBE。
- パラメーター:
matchingMessageTypes
-preSend(Message, MessageChannel)
で一致するSimpMessageType
、それ以外の場合、Message
はSession
にアクセスまたは更新せずに続行されます
preSend
public org.springframework.messaging.Message<?> preSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) - 次で指定:
- インターフェース
org.springframework.messaging.support.ChannelInterceptor
のpreSend
beforeHandshake
public boolean beforeHandshake(org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response, org.springframework.web.socket.WebSocketHandler wsHandler, MapSE<StringSE, ObjectSE> attributes) - 次で指定:
- インターフェース
org.springframework.web.socket.server.HandshakeInterceptor
のbeforeHandshake
afterHandshake
public void afterHandshake(org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response, org.springframework.web.socket.WebSocketHandler wsHandler, ExceptionSE exception) - 次で指定:
- インターフェース
org.springframework.web.socket.server.HandshakeInterceptor
のafterHandshake
getSessionId
setSessionId