public interface SseBroadcaster extends AutoCloseableSE
サーバーブロードキャスターを使用して、複数の server sinks
を管理できます。これにより、すべての登録済みイベント出力にイベントを送信できるようになり、個々の登録済みイベント出力の例外とクローズを効果的に処理する機能が提供されます。
このインターフェースのインスタンスはスレッドセーフです。つまり、内部状態に矛盾を生じさせることなく、共有し、そのメソッドを異なるスレッドから呼び出すことができます。
修飾子と型 | メソッドと説明 |
---|---|
CompletionStageSE<?> | broadcast(OutboundSseEvent event) 登録されているすべての SseEventSink インスタンスに SSE イベントを公開します。 |
void | close() ブロードキャスターと登録されているすべての SseEventSink インスタンスを閉じます。 |
void | onClose(ConsumerSE<SseEventSink> onClose) この SseBroadcaster が特定のイベント SseEventSink を閉じるか、すでに閉じられている特定の SseEventSink に書き込もうとしたときに呼び出されるリスナーを登録します(クライアントが接続を閉じるか、サーバー側で SseEventSink.close() を呼び出すことによって)。 |
void | onError(BiConsumerSE<SseEventSink, ThrowableSE> onError) リスナーを登録します。このリスナーは、この SseBroadcaster が書き込みまたはクローズを試みたときに、特定の SseEventSink によって例外がスローされたときに呼び出されます。 |
void | register(SseEventSink sseEventSink) 提供された SseEventSink インスタンスをこの SseBroadcaster に登録します。 |
void onError(BiConsumerSE<SseEventSink,ThrowableSE> onError)
SseEventSink
によって例外がスローされたときに呼び出されます。 特に多数のリスナーがブロードキャスターに登録されている場合、この操作は潜在的に遅くなります。SseBroadcaster
の実装は、少量の同時リスナーの登録と削除、および大量の登録済みリスナー通知を効率的に処理するように最適化されています。
onError
- 2 つのパラメーターを取るバイコンシューマー: エラーの原因である SseEventSink
と実際の Throwable
SE インスタンス。void onClose(ConsumerSE<SseEventSink> onClose)
SseEventSink
を閉じるか、すでに閉じられている特定の SseEventSink
に書き込もうとしたときに呼び出されるリスナーを登録します(クライアントが接続を閉じるか、サーバー側で SseEventSink.close()
を呼び出すことによって)。 特に多数のリスナーがブロードキャスターに登録されている場合、この操作は潜在的に遅くなります。SseBroadcaster
の実装は、少量の同時リスナーの登録と削除、および大量の登録済みリスナー通知を効率的に処理するように最適化されています。
onClose
- 閉じられた単一のパラメーター SseEventSink
を使用するコンシューマー。void register(SseEventSink sseEventSink)
SseEventSink
インスタンスをこの SseBroadcaster
に登録します。sseEventSink
- 登録します。CompletionStageSE<?> broadcast(OutboundSseEvent event)
SseEventSink
インスタンスに SSE イベントを公開します。event
- 公開する SSE イベント。void close()
SseEventSink
インスタンスを閉じます。SseBroadcaster
に関連するその他のリソースはすべて解放する必要があります。
後続の呼び出しは効果がなく、無視されます。SseBroadcaster
が閉じられると、ブロードキャスターインスタンスで他のメソッドを呼び出すと、IllegalStateException
SE がスローされます。
AutoCloseableSE
の closeSE
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.