EventStreamResource.java
package com.workbenchclassic;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.sse.Sse;
import javax.ws.rs.sse.SseEventSink;
@Path("/events")
public class EventStreamResource {
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public void listen(
@QueryParam("machineID") String machineID,
@Context SseEventSink eventSink,
@Context Sse sse) {
if (machineID == null || machineID.isBlank()) {
eventSink.close();
return;
}
EventBus.register(machineID, eventSink, sse);
}
}