@Singleton @Path("broadcast") public class UserCreatedEventsResource {
private Sse sse;
private SseBroadcaster broadcaster;
@Inject
public UserCreatedEventsResource(@Context final Sse sse) {
this.sse = sse;
this.broadcaster = sse.newBroadcaster();
}
@POST
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.TEXT_PLAIN)
public String broadcastMessage(String message) {
final OutboundSseEvent event = sse.newEventBuilder()
.name("message")
.mediaType(MediaType.TEXT_PLAIN_TYPE)
.data(String.class, message)
.build();
broadcaster.broadcast(event);
return "Message '" + message + "' has been broadcast.";
}
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public void listenToBroadcast(@Context SseEventSink eventSink) {
this.broadcaster.register(eventSink);
} }
I had a nullpointer exception, but after reimporting the projekt with maven it dissappeared.
I think I did the rebuild once before but it did not work, and now I did it again and its working fine.