Interface SseEventSink

  • All Superinterfaces:
    AutoCloseable

    public interface SseEventSink
    extends AutoCloseable
    Outbound Server-Sent Events stream.

    The instance of SseEventSink can be only acquired by injection of a resource method parameter:

     @GET
     @Path("eventStream")
     @Produces(MediaType.SERVER_SENT_EVENTS)
     public void eventStream(@Context SseEventSink eventSink) {
         // ...
     }
     
    The injected instance is then considered as a return type, so the resource method doesn't return anything, similarly as in server-side async processing.

    The underlying client connection is kept open and the application code is able to send events. A server-side instance implementing the interface corresponds exactly to a single client HTTP connection.

    The injected instance is thread safe.

    Since:
    2.1
    Author:
    Marek Potociar (marek.potociar at oracle.com)
    • Method Summary

      Modifier and Type Method Description
      void close()
      Close the SseEventSink instance and release all associated resources.
      boolean isClosed()
      Check if the stream has been closed already.
      CompletionStage<?> send​(OutboundSseEvent event)
      Send an outbound Server-sent event to this sink.
    • Method Detail

      • isClosed

        boolean isClosed()
        Check if the stream has been closed already.

        Please note that the client connection represented by this SseServerSink can be closed by the client side when a client decides to close connection and disconnect from the server.

        Returns:
        true when closed, false otherwise.
      • send

        CompletionStage<?> send​(OutboundSseEvent event)
        Send an outbound Server-sent event to this sink.

        Event will be serialized and sent to the client.

        Parameters:
        event - event to be written.
        Returns:
        completion stage that completes when the event has been sent. If there is a problem during sending of an event, completion stage will be completed exceptionally.