List of usage examples for org.springframework.web.servlet.mvc.method.annotation SseEmitter SseEmitter
public SseEmitter()
From source file:io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEventsEmitter.java
public RateLimiterEventsEmitter(Flux<RateLimiterEventDTO> eventStream) { this.sseEmitter = new SseEmitter(); this.sseEmitter.onCompletion(this::unsubscribe); this.sseEmitter.onTimeout(this::unsubscribe); this.disposable = eventStream.subscribe(this::notify, this.sseEmitter::completeWithError, this.sseEmitter::complete); }
From source file:de.codecentric.boot.admin.journal.web.JournalController.java
@RequestMapping(path = "/api/journal", produces = "text/event-stream") public SseEmitter getJournalEvents() { final SseEmitter emitter = new SseEmitter(); emitter.onCompletion(new Runnable() { @Override//from ww w. j av a2s . c o m public void run() { emitters.remove(emitter); } }); emitters.add(emitter); return emitter; }
From source file:com.ethlo.kfka.sse.EventController.java
@RequestMapping(value = "/v1/events", method = RequestMethod.GET) public SseEmitter event(@RequestHeader(value = "Last-Event-ID", required = false) String lastEventIdHeader, @RequestParam(required = true, value = "topic") String topic, @RequestParam(required = false, value = "rewind") Integer rewind, @RequestParam(required = false, value = "lastEventId") Long lastEventIdOverride) throws IOException { final SseEmitter sseEmitter = new SseEmitter(); final Emitter emitter = new Emitter(sseEmitter); logger.debug("Opening emitter {}", emitter.hashCode()); this.emitters.add(emitter); final Long lastEventId = lastEventIdOverride != null ? lastEventIdOverride : (lastEventIdHeader != null ? Long.parseLong(lastEventIdHeader) : null); final KfkaPredicate p = new KfkaPredicate().topic(topic); if (lastEventId != null) { p.messageId(lastEventId + 1);//from ww w . j ava2s . co m p.relativeOffset(Integer.MIN_VALUE + 10); } else { final int offset = rewind != null ? Math.abs(rewind) * -1 : -20; p.relativeOffset(offset); } final KfkaMessageListener l = kfkaManager.addListener((msg) -> { try { emitter.emit(msg); } catch (IOException exc) { throw Throwables.propagate(exc); } }, p); emitter.setListener(l); // Remove on completion sseEmitter.onCompletion(new Runnable() { @Override public void run() { logger.debug("Emitter {} closed", emitter.hashCode()); emitters.remove(emitter); kfkaManager.removeListener(emitter.getListener()); } }); return sseEmitter; }
From source file:io.spring.isomorphic.CommentController.java
@RequestMapping("/sse/updates") SseEmitter subscribeUpdates() {//from w w w .j a v a2s . c om SseEmitter sseEmitter = new SseEmitter(); this.sseEmitters.add(sseEmitter); sseEmitter.onCompletion(() -> { this.sseEmitters.remove(sseEmitter); }); return sseEmitter; }