インターフェース SseEventSource
- すべてのスーパーインターフェース:
- AutoCloseableSE
 - public interface SseEventSource extends AutoCloseableSE - incoming Server-Sent Eventsを読み取って処理するためのクライアント。- このクラスの SSE イベントソースインスタンスはスレッドセーフです。新しいインスタンスをビルドするには、 - SseEventSource.target(endpoint)ファクトリメソッドを使用して新しいイベントソースビルダーを取得します。このビルダーをさらにカスタマイズして、最終的に新しい SSE イベントソースを作成するために使用できます。- SseEventSourceが作成されると、関連する- web targetへの- open a connectionに使用できます。接続を確立した後、イベントソースは受信受信イベントの処理を開始します。新しいイベントが受信されるたびに、登録されたイベントコンシューマーで- Consumer<InboundSseEvent>#accept(InboundSseEvent)SE メソッドが呼び出されます。- サポートの再接続- SseEventSourceは、最後に受信した SSE イベント- idフィールド値に基づく欠落イベントの配信のネゴシエーションを含む、接続損失からの自動回復をサポートします。ただし、このフィールドがサーバーによって設定され、ネゴシエーション機能がサーバーによってサポートされている場合に限ります。接続が失われた場合、最後に受信した SSE イベント- idフィールド値が、SSE エンドポイントに送信される新しい接続リクエストの一部として- "Last-Event-ID"HTTP リクエストヘッダーで送信されます。このような再接続リクエストを受信すると、このネゴシエーション機能をサポートする SSE エンドポイントは、欠落したすべてのイベントを再生することが期待されます。ただし、これはベストエフォートメカニズムであり、すべてのイベントが損失なく配信されることを保証するものではないことに注意してください。すべてのイベントの受信に依存して、それに応じてクライアントアプリケーションコードを設計するべきではありません。- デフォルトでは、SSE エンドポイントへの接続が失われると、イベントソースは SSE エンドポイントへの再接続を試みる前に 500 ミリ秒待機します。ただし、SSE エンドポイントは、送信されたイベントに特別な - retryフィールド値を含めることにより、クライアント側の再試行遅延を制御できます。JAX-RS- SseEventSourceは、エンドポイントによって設定された受信 SSE イベント- retryフィールド値を追跡し、最後に受信した- retryフィールド値を再接続遅延として使用して、それに応じて再接続遅延を調整します。- 標準の接続損失障害の処理に加えて、JAX-RS - SseEventSourceはさまざまな HTTP レスポンスステータスコードおよびヘッダーに対して異なる動作をします。- 200-"text/event-stream" の "Content-Type"ヘッダー付き: これは通常の操作です。onEventはイベントごとに呼び出されます。onCompleteは、イベントがなくなると呼び出されます。onErrorは、処理中に回復不能なエラーが発生した場合にのみ呼び出されます。
- 200- サポートされていない、または "Content-Type"ヘッダーが欠落している: これはエラー状態です。onErrorが呼び出されます。
- 204- これは、サーバーに送信するイベントがないことを示します。onCompleteのみが呼び出されます。
- 503- "Retry-After"ヘッダーが有効な値に設定されている場合: これは、サーバーが使用できないが、クライアントは後で再接続する必要があることを示します。再接続する前にクライアントイベントソースが閉じられない限り、コンシューマーは呼び出されません(onCompleteが呼び出されます)。指定された遅延の後、クライアントは自動的に再接続を試行する必要があります。これにより、新しいレスポンスが発生します。
- 503- "Retry-After"ヘッダーが無効または欠落している: これはエラー状態です。onErrorが呼び出されます。
-  その他のステータスコード: これはエラー状態です。onErrorが呼び出されます。
 - エラー条件レスポンスの場合、 - onErrorコンシューマーに渡される- Throwableは、無効な- Responseオブジェクトを含む WebApplicationException である必要があります。- 登録されたイベントコンシューマーのいずれかで、 - Consumer<InboundSseEvent>#accept(InboundSseEvent)SE メソッドの呼び出しが例外をスローした場合、これはエラー状態ではないことに注意してください。- onErrorは呼び出されず、イベント処理は停止されません。ユーザーは、イベント処理ロジックの一部として独自に例外を処理することをお勧めします。- 導入:
- 2.1
- 作成者:
- Marek Potociar
 
- ネストされたクラスの要約- ネストされたクラス - 修飾子と型 - インターフェース - 説明 - static class- SseEventSource.BuilderJAX-RS- SseEventSourceビルダークラス。
 - メソッドのサマリー- すべてのメソッド 静的メソッド インスタンスメソッド 抽象メソッド デフォルトメソッド - 修飾子と型 - メソッド - 説明 - default void- close()このイベントソースを閉じます。- boolean- close(long timeout, TimeUnitSE unit)このイベントソースを閉じて、内部イベント処理タスクが指定された待機時間まで完了するのを待ちます。- boolean- isOpen()このイベントソースインスタンスがすでに- openedになっていることを確認してください。- void- open()- web targetの基礎となる提供された SSE への接続を開き、受信- eventsの処理を開始します。- void- register(ConsumerSE<InboundSseEvent> onEvent)- InboundSseEventコンシューマーを登録します。- void- register(ConsumerSE<InboundSseEvent> onEvent, ConsumerSE<ThrowableSE> onError)- InboundSseEventおよび- ThrowableSE コンシューマーを登録します。- void- register(ConsumerSE<InboundSseEvent> onEvent, ConsumerSE<ThrowableSE> onError, RunnableSE onComplete)- InboundSseEventおよび- ThrowableSE コンシューマーと onComplete コールバックを登録します。- static SseEventSource.Builder- target(WebTarget endpoint)新しく準備されたイベントソースインスタンスのさまざまなアスペクトを構成および微調整する便利な方法を提供する新しい- event source builderを作成します。
 
- メソッドの詳細- register- void register(ConsumerSE<InboundSseEvent> onEvent) - InboundSseEventコンシューマーを登録します。- 特定のコンシューマーは、受信したイベントごとに 1 回呼び出されます。 - パラメーター:
- onEvent- イベントのコンシューマー。
- 例外:
- IllegalArgumentExceptionSE- 提供されたパラメーターが- nullの場合。
 
 - register- void register(ConsumerSE<InboundSseEvent> onEvent, ConsumerSE<ThrowableSE> onError) - InboundSseEventおよび- ThrowableSE コンシューマーを登録します。- イベントコンシューマーは、受信したイベントごとに 1 回呼び出され、 - Throwableコンシューマーは、- SseEventSourceで検出された回復不能なエラーが発生したときに呼び出されます。- パラメーター:
- onEvent- イベントのコンシューマー。
- onError- エラーコンシューマー。
- 例外:
- IllegalArgumentExceptionSE- 提供されたパラメーターのいずれかが- nullの場合。
 
 - register- void register(ConsumerSE<InboundSseEvent> onEvent, ConsumerSE<ThrowableSE> onError, RunnableSE onComplete) - InboundSseEventおよび- ThrowableSE コンシューマーと onComplete コールバックを登録します。- イベントコンシューマーは、受信したイベントごとに 1 回呼び出され、 - Throwableコンシューマーは、- SseEventSourceで回復不能なエラーが発生したときに呼び出され、onComplete コールバックは、接続が成功した後、受信するイベントがなくなったときに呼び出されます。onError コールバックが呼び出された場合は、onComplete コールバックは呼び出されないことに注意してください。- パラメーター:
- onEvent- イベントのコンシューマー。
- onError- エラーコンシューマー。
- onComplete- onComplete ハンドラー。
- 例外:
- IllegalArgumentExceptionSE- 提供されたパラメーターのいずれかが- nullの場合。
 
 - target- static SseEventSource.Builder target(WebTarget endpoint) 新しく準備されたイベントソースインスタンスのさまざまなアスペクトを構成および微調整する便利な方法を提供する新しい- event source builderを作成します。- パラメーター:
- endpoint- SSE ストリーミングエンドポイント。- nullであってはなりません。
- 戻り値:
- 指定された SSE ストリーミングエンドポイントを指す新しいイベントソースインスタンスのビルダー。
- 例外:
- NullPointerExceptionSE- 提供された Web ターゲットが- nullの場合。
 
 - open- void open() - web targetの基礎となる提供された SSE への接続を開き、受信- eventsの処理を開始します。- 例外:
- IllegalStateExceptionSE- イベントソースがすでに開かれている場合。
 
 - isOpen- boolean isOpen() このイベントソースインスタンスがすでに- openedになっていることを確認してください。- 戻り値:
-  このイベントソースが開いている場合は true、それ以外の場合はfalse。
 
 - close- default void close() このイベントソースを閉じます。- このメソッドは、内部イベント処理タスクが完了するまで最大 5 秒待機します。 - 次で指定:
-  インターフェース AutoCloseableSEのclose
 
 - close- boolean close(long timeout, TimeUnitSE unit)このイベントソースを閉じて、内部イベント処理タスクが指定された待機時間まで完了するのを待ちます。- このメソッドは、シャットダウンリクエスト後にイベント処理タスクの実行が完了するまで、またはタイムアウトが発生するまで、現在のスレッドが中断されるまで、どちらか早い方でブロックします。 - イベント処理タスクの待機が中断された場合、このメソッドは - falseを返す前にスレッドの- interruptフラグを復元します。- パラメーター:
- timeout- 待機する最大時間。
- unit- タイムアウト引数の時間単位。
- 戻り値:
-  このエグゼキュータが終了した場合は true、終了前にタイムアウトが経過した場合、終了が中断された場合はfalse。