@Lock(WRITE) public void onEvent(@Observes DomainEvent domainEvent) { String message = domainEvent.getContents(); messages.add(message); OutboundSseEvent event = createEvent(message, ++lastEventId); sseBroadcaster.broadcast(event); }
public void listener(@ObservesAsync @TickTockQualfier TickTock ticktock){ System.out.println("SSE event in thread "+ Thread.currentThread().getName()); OutboundSseEvent sseEvent = sse.newEventBuilder() .id(String.valueOf(System.currentTimeMillis())) .data(new TickTock(ticktock.getTick(), ticktock.getTock())) .mediaType(MediaType.APPLICATION_JSON_TYPE) .build(); broadcast(sseEvent); }
public void broadcast(OutboundSseEvent event){ try { broadcaster.broadcast(event); } catch (Exception ex) { ex.printStackTrace(); } }
@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(); }
private OutboundSseEvent createEvent(String message, int id) { return sse.newEventBuilder().id(String.valueOf(id)).data(message).build(); }
private static OutboundSseEvent createEvent(final OutboundSseEvent.Builder builder, final String id, final String body) { return builder.id(id).data(body).mediaType(MediaType.APPLICATION_JSON_TYPE).build(); }