クラス StompSubProtocolHandler

java.lang.ObjectSE
org.springframework.web.socket.messaging.StompSubProtocolHandler
実装されたすべてのインターフェース:
AwareApplicationEventPublisherAwareSubProtocolHandler

public class StompSubProtocolHandler extends ObjectSE implements SubProtocolHandler, ApplicationEventPublisherAware
STOMP 仕様のバージョン 1.0, 1.1,, 1.2 をサポートする STOMP 用の SubProtocolHandler
導入:
4.0
作成者:
Rossen Stoyanchev, Andy Wilkinson
  • フィールドの詳細

    • MINIMUM_WEBSOCKET_MESSAGE_SIZE

      public static final int MINIMUM_WEBSOCKET_MESSAGE_SIZE
      このハンドラーは、複数の WebSocket メッセージに分割された大きな STOMP メッセージの組み立てをサポートし、STOMP クライアント(stomp.js など)は実際に 16K 境界で大きな STOMP メッセージを分割します。そのため、WebSocket サーバーの入力メッセージバッファーサイズは、少なくとも 16K に加えて、SockJS フレーミング用に少し余分に必要です。
      関連事項:
    • CONNECTED_USER_HEADER

      public static final StringSE CONNECTED_USER_HEADER
      WebSocket セッションで認証されたユーザーの名前を示す、CONNECTED フレームに設定されたヘッダーの名前。
      関連事項:
  • コンストラクターの詳細

    • StompSubProtocolHandler

      public StompSubProtocolHandler()
  • メソッドの詳細

    • setErrorHandler

      public void setErrorHandler(StompSubProtocolErrorHandler errorHandler)
      クライアントに送信されるエラーメッセージのハンドラーを構成します。これにより、エラーメッセージをカスタマイズしたり、送信されないようにすることができます。

      デフォルトでは、これは設定されていません。その場合、エラーを反映するメッセージヘッダーとともに ERROR フレームが送信されます。

      パラメーター:
      errorHandler - エラーハンドラー
    • getErrorHandler

      @Nullable public StompSubProtocolErrorHandler getErrorHandler()
      設定されたエラーハンドラーを返します。
    • setMessageSizeLimit

      public void setMessageSizeLimit(int messageSizeLimit)
      受信 STOMP メッセージに許可される最大サイズを構成します。STOMP メッセージは複数の WebSocket メッセージで受信できるため、バッファリングが必要になる場合があり、許可される最大メッセージサイズを知る必要があります。

      デフォルトでは、このプロパティは 64K に設定されています。

      導入:
      4.0.3
    • getMessageSizeLimit

      public int getMessageSizeLimit()
      設定されたメッセージバッファサイズの制限をバイト単位で取得します。
      導入:
      4.0.3
    • setEncoder

      public void setEncoder(StompEncoder encoder)
      STOMP フレームのエンコード用に StompEncoder を構成します。
      導入:
      4.3.5
    • setDecoder

      public void setDecoder(StompDecoder decoder)
      STOMP フレームをデコードするために StompDecoder を構成します。
      導入:
      4.3.5
    • setHeaderInitializer

      public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
      MessageHeaderInitializer を構成して、デコードされた STOMP フレームから作成されたすべてのメッセージと、クライアントの受信チャネルに送信された他のメッセージのヘッダーに適用します。

      デフォルトでは、このプロパティは設定されていません。

    • getHeaderInitializer

      @Nullable public MessageHeaderInitializer getHeaderInitializer()
      設定済みのヘッダー初期化子を返します。
    • setPreserveReceiveOrder

      public void setPreserveReceiveOrder(boolean preserveReceiveOrder)
      クライアントメッセージを受信した順序で処理する必要があるかどうか。

      デフォルトでは、"clientInboundChannel" に送信されたメッセージは同じ順序で処理されない可能性があります。これは、チャネルが ThreadPoolExecutor によってサポートされており、順序どおりに処理されることが保証されていないためです。

      このフラグが true に設定されている場合、同じセッション内のメッセージは、受信された順序を維持するために一度に 1 つずつ "clientInboundChannel" に送信されます。

      パラメーター:
      preserveReceiveOrder - 順番に公開するかどうか
      導入:
      6.1
    • isPreserveReceiveOrder

      public boolean isPreserveReceiveOrder()
      ハンドラーが受信メッセージを受信した順序で処理するように構成されているかどうか。
      導入:
      6.1
    • getSupportedProtocols

      public ListSE<StringSE> getSupportedProtocols()
      インターフェースからコピーされた説明: SubProtocolHandler
      このハンドラーでサポートされているサブプロトコルのリストを返します(非 null)。
      次で指定:
      インターフェース SubProtocolHandlergetSupportedProtocols 
    • setApplicationEventPublisher

      public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
      インターフェースからコピーされた説明: ApplicationEventPublisherAware
      このオブジェクトが実行される ApplicationEventPublisher を設定します。

      通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext の前に呼び出されます。

      次で指定:
      インターフェース ApplicationEventPublisherAwaresetApplicationEventPublisher 
      パラメーター:
      applicationEventPublisher - このオブジェクトによって使用されるイベント発行元
    • getStatsInfo

      public StringSE getStatsInfo()
      内部状態とカウンタを説明する文字列を返します。事実上、getStats() 上の toString()
    • getStats

      public StompSubProtocolHandler.Stats getStats()
      内部状態とカウンターを含む構造化オブジェクトを返します。
      導入:
      5.2
    • handleMessageFromClient

      public void handleMessageFromClient(WebSocketSession session, WebSocketMessage<?> webSocketMessage, MessageChannel targetChannel)
      クライアントからの受信 WebSocket メッセージを処理します。
      次で指定:
      インターフェース SubProtocolHandlerhandleMessageFromClient 
      パラメーター:
      session - クライアントセッション
      webSocketMessage - クライアントメッセージ
      targetChannel - メッセージを送信する出力チャネル
    • handleMessageToClient

      public void handleMessageToClient(WebSocketSession session, Message<?> message)
      WebSocket クライアントに戻る STOMP メッセージを処理します。
      次で指定:
      インターフェース SubProtocolHandlerhandleMessageToClient 
      パラメーター:
      session - クライアントセッション
      message - クライアントメッセージ
    • toMutableAccessor

      protected StompHeaderAccessor toMutableAccessor(StompHeaderAccessor headerAccessor, Message<?> message)
    • resolveSessionId

      @Nullable public StringSE resolveSessionId(Message<?> message)
      インターフェースからコピーされた説明: SubProtocolHandler
      指定されたメッセージからセッション ID を解決するか、null を返します。
      次で指定:
      インターフェース SubProtocolHandlerresolveSessionId 
      パラメーター:
      message - セッション ID を解決するメッセージ
    • afterSessionStarted

      public void afterSessionStarted(WebSocketSession session, MessageChannel outputChannel)
      インターフェースからコピーされた説明: SubProtocolHandler
      WebSocketSession が開始した後に呼び出されます。
      次で指定:
      インターフェース SubProtocolHandlerafterSessionStarted 
      パラメーター:
      session - クライアントセッション
      outputChannel - チャンネル
    • afterSessionEnded

      public void afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel)
      インターフェースからコピーされた説明: SubProtocolHandler
      WebSocketSession が終了した後に呼び出されます。
      次で指定:
      インターフェース SubProtocolHandlerafterSessionEnded 
      パラメーター:
      session - クライアントセッション
      closeStatus - セッションが閉じられた理由
      outputChannel - チャンネル
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString