クラス UnicastSendingMessageHandler

実装されたすべてのインターフェース:
RunnableSEorg.reactivestreams.Subscriber<Message<?>>AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareLifecycleOrderedExpressionCapableOrderableIntegrationPatternCommonSocketOptionsNamedComponentIntegrationManagementManageableLifecycleTrackableComponentMessageHandlerreactor.core.CoreSubscriber<Message<?>>
既知の直属サブクラス
MulticastSendingMessageHandler

public class UnicastSendingMessageHandler extends AbstractInternetProtocolSendingMessageHandler implements RunnableSE
メッセージを UDP データグラムパケットにマップし、それを指定されたホストとポートに送信する MessageHandler 実装。

メッセージは、信頼性をサポートしていない基本的なものにすることができ、受信側が切り捨てを検出できるように長さをプレフィックスとして付けることができ、配信を確認するために UDP 確認応答を要求することができます。

導入:
2.0
作成者:
Gary Russell, Marcin Pilaczynski, Artem Bilan, Christian Tzolov
  • フィールドの詳細

    • lock

      protected final LockSE lock
  • コンストラクターの詳細

    • UnicastSendingMessageHandler

      public UnicastSendingMessageHandler(StringSE host, int port)
      基本的なコンストラクター。信頼性なし。確認はありません。
      パラメーター:
      host - 宛先ホスト。
      port - 宛先ポート。
    • UnicastSendingMessageHandler

      public UnicastSendingMessageHandler(StringSE destinationExpression)
      宛先 SpEL 式に基づいて UnicastSendingMessageHandler を構築し、実行時に requestMessage に対してターゲット宛先を決定します。
      パラメーター:
      destinationExpression - 実行時にターゲットの宛先を評価するための SpEL 式。StringSEURISESocketAddressSE に評価する必要があります。
      導入:
      4.3
    • UnicastSendingMessageHandler

      public UnicastSendingMessageHandler(Expression destinationExpression)
      宛先 SpEL 式に基づいて UnicastSendingMessageHandler を構築し、実行時に requestMessage に対してターゲット宛先を決定します。
      パラメーター:
      destinationExpression - 実行時にターゲットの宛先を評価するための SpEL 式。StringSEURISESocketAddressSE に評価する必要があります。
      導入:
      4.3
    • UnicastSendingMessageHandler

      public UnicastSendingMessageHandler(StringSE host, int port, boolean lengthCheck)
      宛先でチェックできる各パケットに長さを追加するために使用できます。
      パラメーター:
      host - 宛先ホスト。
      port - 宛先ポート。
      lengthCheck - true の場合、パケットには長さが含まれます。
    • UnicastSendingMessageHandler

      public UnicastSendingMessageHandler(StringSE host, int port, boolean acknowledge, StringSE ackHost, int ackPort, int ackTimeout)
      確認応答リクエストをパケットに追加します。
      パラメーター:
      host - 宛先ホスト。
      port - 宛先ポート。
      acknowledge - true の場合、パケットは確認応答をリクエストします。
      ackHost - ack の送信先となるホスト。ack が true の場合に必要です。
      ackPort - ack の送信先のポート。
      ackTimeout - ack を待つ時間(ミリ秒)。
    • UnicastSendingMessageHandler

      public UnicastSendingMessageHandler(StringSE host, int port, boolean lengthCheck, boolean acknowledge, StringSE ackHost, int ackPort, int ackTimeout)
      長さや確認応答リクエストをパケットに追加します。
      パラメーター:
      host - 宛先ホスト。
      port - 宛先ポート。
      lengthCheck - true の場合、パケットには長さが含まれます。
      acknowledge - true の場合、パケットは確認応答をリクエストします。
      ackHost - ack の送信先となるホスト。ack が true の場合に必要です。
      ackPort - ack の送信先のポート。
      ackTimeout - ack を待つ時間(ミリ秒)。
  • メソッドの詳細

    • setLengthCheck

      public void setLengthCheck(boolean lengthCheck)
      パラメーター:
      lengthCheck - true の場合、4 バイトのバイナリ長ヘッダーがパケットに追加され、受信者がデータの切り捨てをチェックできるようになります。
      導入:
      5.0
    • setSocketCustomizer

      public void setSocketCustomizer(SocketCustomizer socketCustomizer)
      作成後にソケットをさらに構成するようにカスタマイザーを設定します。
      パラメーター:
      socketCustomizer - カスタマイザー。
      導入:
      5.3.3
    • setReliabilityAttributes

      protected final void setReliabilityAttributes(boolean lengthCheck, boolean acknowledge, StringSE ackHost, int ackPort, int ackTimeout)
    • doStart

      public void doStart()
      次で指定:
      クラス AbstractInternetProtocolSendingMessageHandlerdoStart 
    • doStop

      protected void doStop()
      次で指定:
      クラス AbstractInternetProtocolSendingMessageHandlerdoStop 
    • handleMessageInternal

      public void handleMessageInternal(Message<?> message)
      次で指定:
      クラス AbstractMessageHandlerhandleMessageInternal 
    • startAckThread

      public void startAckThread()
    • convertAndSend

      protected void convertAndSend(Message<?> message) throws IOExceptionSE, URISyntaxExceptionSE
      例外:
      IOExceptionSE
      URISyntaxExceptionSE
    • setSocket

      protected void setSocket(DatagramSocketSE socket)
    • getTheSocket

      @Nullable protected DatagramSocketSE getTheSocket()
    • getSocket

      protected DatagramSocketSE getSocket() throws IOExceptionSE
      例外:
      IOExceptionSE
    • updateAckAddress

      protected void updateAckAddress()
    • setSoReceiveBufferSize

      public void setSoReceiveBufferSize(int size)
      次で指定:
      インターフェース CommonSocketOptionssetSoReceiveBufferSize 
      オーバーライド:
      クラス AbstractInternetProtocolSendingMessageHandlersetSoReceiveBufferSize 
      パラメーター:
      size - 受信バッファサイズ。
      関連事項:
    • setLocalAddress

      public void setLocalAddress(StringSE localAddress)
      インターフェースからコピーされた説明: CommonSocketOptions
      マルチホームシステムでは、通信に使用されるネットワークインターフェースの IP アドレスを指定します。受信アダプターおよびゲートウェイの場合、受信接続用にリストされているインターフェースを指定します。省略した場合、エンドポイントは使用可能なすべてのアダプターをリッスンします。UDP マルチキャスト送信アダプターの場合、マルチキャストパケットの送信先のインターフェースを指定します。UDP ユニキャストおよびマルチキャストアダプターの場合、確認応答ソケットがバインドされるインターフェースを指定します。TCP 送信アダプターおよびゲートウェイには適用されません。
      次で指定:
      インターフェース CommonSocketOptionssetLocalAddress 
      パラメーター:
      localAddress - ローカルアドレス。
    • setTaskExecutor

      public void setTaskExecutor(ExecutorSE taskExecutor)
    • setAckCounter

      public void setAckCounter(int ackCounter)
      パラメーター:
      ackCounter - 設定する ackCounter
    • setSocketExpression

      public void setSocketExpression(Expression socketExpression)
      パラメーター:
      socketExpression - 実行時にターゲットソケットを決定するためのソケット式。
      導入:
      4.3
    • setSocketExpressionString

      public void setSocketExpressionString(StringSE socketExpression)
      パラメーター:
      socketExpression - 実行時にターゲットソケットを決定するためのソケット SpEL 式。
      導入:
      4.3
    • getComponentType

      public StringSE getComponentType()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。
      次で指定:
      インターフェース NamedComponentgetComponentType 
      オーバーライド:
      クラス MessageHandlerSupportgetComponentType 
    • isAcknowledge

      public boolean isAcknowledge()
      戻り値:
      承認
    • getAckPort

      public int getAckPort()
      戻り値:
      ackPort
    • getSoReceiveBufferSize

      public int getSoReceiveBufferSize()
      戻り値:
      soReceiveBufferSize
    • onInit

      protected void onInit()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスは、初期化ロジック用にこれを実装できます。
      オーバーライド:
      クラス IntegrationObjectSupportonInit 
    • setSocketAttributes

      protected void setSocketAttributes(DatagramSocketSE socket) throws SocketExceptionSE
      例外:
      SocketExceptionSE
    • run

      public void run()
      リクエストされた場合は、確認応答を処理します。
      次で指定:
      インターフェース RunnableSErun 
    • restartAckThread

      public void restartAckThread()
      MBean として公開されている場合、JVM をバウンスせずに、致命的な(バインド)エラーが発生した場合に ack スレッドを再起動するために使用できます。