Java 类javax.ws.rs.sse.Sse 实例源码

项目:Java-EE-8-Sampler    文件:ServerSentEventsResource.java   
@POST
@Path("progress/{report_id}")
@Produces(MediaType.SERVER_SENT_EVENTS)
public void eventStream(@PathParam("report_id") final String id,
                        @Context SseEventSink es,
                        @Context Sse sse) {
    executorService.execute(() -> {
        try {
            eventSink.send(sse.newEventBuilder().name("report-progress")
                    .data(String.class, "Commencing process for report " + id + " ...").build());
            es.send(sse.newEvent("Progress", "25%"));
            Thread.sleep(500);
            es.send(sse.newEvent("Progress", "50%"));
            Thread.sleep(500);
            es.send(sse.newEvent("Progress", "75%"));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    });
}
项目:javaee8-applications    文件:SSEResource.java   
@GET
@Path("subscribe")
@Produces(MediaType.SERVER_SENT_EVENTS)
public void subscribe(@Context SseEventSink eventSink,
                      @Context Sse sse){
    eventSink.send(sse.newEvent("Welcome to the List!"));
    eventSink.send(sse.newEvent("Message One!"));
    eventSink.send(sse.newEvent("SERVER-NOTIFICATION", "Message Two!"));
    eventSink.send(sse.newEventBuilder()
                    .comment("Nice Test")
                    .name("SERVER-TEST")
                    .data("Some data...could be an object")
                    .build());
    eventSink.close();
}
项目:ee8-sandbox    文件:SseResource.java   
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public void eventStream(@Context Sse sse, @Context SseEventSink eventSink) {
    // Resource method is invoked when a client subscribes to an event stream.
    // That implies that sending events will most likely happen from different
    // context - thread / event handler / etc, so common implementation of the
    // resource method will store the eventSink instance and the application 
    // logic will retrieve it when an event should be emitted to the client.

    // sending events:
    eventSink.send(sse.newEvent("event1"));
}
项目:hammock    文件:SseEndpoint.java   
@GET
@Path("/{uuid}")
@Produces(SERVER_SENT_EVENTS)
public void doSseCall(@PathParam("uuid") String uuid, @Context SseEventSink sink, @Context Sse sse) {
    final OutboundSseEvent.Builder builder = sse.newEventBuilder();
    OutboundSseEvent event = builder.id(uuid)
            .data(SseModel.class, new SseModel("some model "+uuid))
            .build();
    sink.send(event);
    sink.close();
}
项目:ee8-sandbox    文件:SseRequest.java   
public SseRequest(Sse sse, SseEventSink eventSink) {
    this.sse = sse;
    this.eventSink = eventSink;
}
项目:ee8-sandbox    文件:SseRequest.java   
public Sse getSse() {
    return sse;
}
项目:ee8-sandbox    文件:SseRequest.java   
public void setSse(Sse sse) {
    this.sse = sse;
}
项目:ee8-sandbox    文件:SseCdiResource.java   
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public void eventStreamCdi(@Context Sse sse, @Context SseEventSink eventSink) {
    handler.register(UUID.randomUUID().toString(), new SseRequest(sse, eventSink));
}
项目:hammock    文件:SseEvent.java   
public SseEvent(SseEventSink sink, Sse sse, String id) {
    this.sink = sink;
    this.sse = sse;
    this.id = id;
}
项目:hammock    文件:SseEventEndpoint.java   
@GET
@Path("{connectionId}")
@Produces(MediaType.SERVER_SENT_EVENTS)
public void onEvent(@Context SseEventSink sink, @PathParam("connectionId") final String id, @Context Sse sse) {
    event.fire(new SseEvent(sink, sse, id));
}