クラス StompClientSupport

java.lang.ObjectSE
org.springframework.messaging.simp.stomp.StompClientSupport
既知の直属サブクラス
ReactorNettyTcpStompClientWebSocketStompClient

public abstract class StompClientSupport extends ObjectSE
STOMP クライアント実装の基本クラス。

サブクラスは、任意のライブラリを使用して WebSocket または TCP 経由で接続できます。新しい接続を作成するとき、サブクラスは TcpConnectionHandler を実装する DefaultStompSession のインスタンスを作成できます。このインスタンスのライフサイクルメソッドは、サブクラスが呼び出す必要があります。

実際、TcpConnectionHandler と TcpConnection は、StompEncoderStompDecoder を使用して STOMP メッセージをエンコードおよびデコードするときに、サブクラスが適応しなければならない契約です。

導入:
4.2
作成者:
Rossen Stoyanchev
  • コンストラクターの詳細

    • StompClientSupport

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

    • setMessageConverter

      public void setMessageConverter(MessageConverter messageConverter)
      オブジェクト型と「コンテンツ型」ヘッダーに基づいて、受信メッセージと発信メッセージのペイロードを byte[] との間で変換するために使用する MessageConverter を設定します。

      デフォルトでは、SimpleMessageConverter が構成されています。

      パラメーター:
      messageConverter - 使用するメッセージコンバーター
    • getMessageConverter

      public MessageConverter getMessageConverter()
      設定された MessageConverter を返します。
    • setTaskScheduler

      public void setTaskScheduler(@Nullable TaskScheduler taskScheduler)
      ハートビートと受信追跡に使用するスケジューラを構成します。

      注意 : 一部のトランスポートには、ハートビートを処理するためのサポートが組み込まれているため、TaskScheduler は必要ありません。ただし、領収書は必要に応じて、TaskScheduler を構成する必要があります。

      デフォルトでは、これは設定されていません。

    • getTaskScheduler

      @Nullable public TaskScheduler getTaskScheduler()
      構成された TaskScheduler。
    • setDefaultHeartbeat

      public void setDefaultHeartbeat(long[] heartbeat)
      STOMP CONNECT フレームの「ハートビート」ヘッダーのデフォルト値を設定します。最初の数値は、クライアントがハートビートを書き込んだり送信したりする頻度を表します。2 番目は、サーバーが書き込む頻度です。値 0 はハートビートがないことを意味します。

      デフォルトでは、これは "10000,10000" に設定されていますが、サブクラスはそのデフォルトをオーバーライドでき、たとえば、TaskScheduler を最初に構成する必要がある場合は、"0,0" に設定できます。

      注意 : ハートビートは、非アクティブの場合、つまり他のメッセージが送信されない場合にのみ送信されます。ブローカー以外の宛先を持つメッセージはアクティビティを表しますが、実際にはブローカーに転送されないため、これは外部ブローカーを使用するときに問題を引き起こす可能性があります。その場合、StompBrokerRelayRegistration を介して `TaskScheduler` を構成できます。これにより、ブローカー以外の宛先のメッセージのみが送信された場合にも、ハートビートがブローカーに転送されます。

      パラメーター:
      heartbeat - CONNECT「ハートビート」ヘッダーの値
      関連事項:
    • getDefaultHeartbeat

      public long[] getDefaultHeartbeat()
      構成されたデフォルトのハートビート値を返します(null は決してしないでください)。
    • isDefaultHeartbeatEnabled

      public boolean isDefaultHeartbeatEnabled()
      ハートビートが有効になっているかどうかを確認します。

      defaultHeartbeat が "0,0" に設定されている場合は false を返し、それ以外の場合は true を返します。

    • setReceiptTimeLimit

      public void setReceiptTimeLimit(long receiptTimeLimit)
      レシートが期限切れと見なされるまでのミリ秒数を設定します。

      デフォルトでは 15,000 (15 秒に設定されています)。

    • getReceiptTimeLimit

      public long getReceiptTimeLimit()
      設定された受領期限を返します。
    • createSession

      protected ConnectionHandlingStompSession createSession(@Nullable StompHeaders connectHeaders, StompSessionHandler handler)
      新しいセッションを作成および構成するためのファクトリメソッド。
      パラメーター:
      connectHeaders - STOMP CONNECT フレームのヘッダー
      handler - STOMP セッションのハンドラー
      戻り値:
      作成されたセッション
    • processConnectHeaders

      protected StompHeaders processConnectHeaders(@Nullable StompHeaders connectHeaders)
      StompHeaders をさらに初期化します。たとえば、必要に応じてハートビートヘッダーを設定します。
      パラメーター:
      connectHeaders - 変更するヘッダー
      戻り値:
      変更されたヘッダー