Package ratpack.sse
Class ServerSentEvents
- java.lang.Object
-
- ratpack.sse.ServerSentEvents
-
- All Implemented Interfaces:
Renderable
public class ServerSentEvents extends java.lang.Object implements Renderable
Arenderable
object for streaming server side events.A
renderer
for this type is implicitly provided by Ratpack core.Example usage:
import org.reactivestreams.Publisher; import ratpack.http.client.ReceivedResponse; import ratpack.sse.ServerSentEvent; import ratpack.sse.ServerSentEvents; import ratpack.test.embed.EmbeddedApp; import java.time.Duration; import java.util.Arrays; import java.util.Objects; import static ratpack.stream.Streams.periodically; import static java.util.stream.Collectors.joining; import static org.junit.Assert.assertEquals; public class Example { public static void main(String[] args) throws Exception { EmbeddedApp.fromHandler(context -> { Publisher<ServerSentEvent> stream = periodically(context, Duration.ofMillis(5), i -> i < 5 ? ServerSentEvent.builder().id(i.toString()).event("counter").data("event " + i).build() : null ); context.render(ServerSentEvents.builder().build(stream)); }).test(httpClient -> { ReceivedResponse response = httpClient.get(); assertEquals("text/event-stream;charset=UTF-8", response.getHeaders().get("Content-Type")); String expectedOutput = Arrays.asList(0, 1, 2, 3, 4) .stream() .map(i -> "id: " + i + "\nevent: counter\ndata: event " + i + "\n") .collect(joining("\n")) + "\n"; assertEquals(expectedOutput, response.getBody().getText()); }); } }
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static ServerSentEventsBuilder
builder()
Creates a builder for an event stream.Publisher<? extends Event<?>>
getPublisher()
Deprecated.since 1.10 with no replacementvoid
render(Context context)
Render this object to the response.static <T> ServerSentEvents
serverSentEvents(Publisher<T> publisher, ratpack.func.Action<? super Event<T>> action)
Deprecated.since 1.10 - usebuilder()
-
-
-
Method Detail
-
builder
public static ServerSentEventsBuilder builder()
Creates a builder for an event stream.- Returns:
- a builder for an event stream
-
serverSentEvents
@Deprecated public static <T> ServerSentEvents serverSentEvents(Publisher<T> publisher, ratpack.func.Action<? super Event<T>> action)
Deprecated.since 1.10 - usebuilder()
Deprecated.
-
getPublisher
@Deprecated @Nullable public Publisher<? extends Event<?>> getPublisher()
Deprecated.since 1.10 with no replacementDeprecated.
-
render
public void render(Context context) throws java.lang.Exception
Render this object to the response.- Specified by:
render
in interfaceRenderable
- Parameters:
context
- the request handling context- Throws:
java.lang.Exception
- any
-
-