26 Ekim 2020 Pazartesi

Server Sent Events Kullanımı

Giriş
SSE kullanmak için 3 tane seçenek var

1. Flux<String> döndürmek
Örnek
Şöyle yaparız
@GetMapping(path = "/stream-flux", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> streamFlux() {
   return Flux.interval(Duration.ofSeconds(1))
           .map(sequence -> "Flux - " + LocalTime.now().toString());
}
2. Flux<ServerSentEvent> döndürmek
ServerSentEvent bir spring sınıfı. Açıklaması şöyle
Spring introduced support for SSE specification in version 4.2 together with a ServerSentEvent class. The benefit here is that we can skip the text/event-stream media type explicit specification, as well as we can add metadata such as id or event type.
Örnek
Şöyle yaparız
@GetMapping("/sse-flux-2")
public Flux<ServerSentEvent> sseFlux2() {
   return Flux.interval(Duration.ofSeconds(1))
           .map(sequence -> ServerSentEvent.builder()
                   .id(String.valueOf(sequence))
                   .event("EVENT_TYPE")
                   .data("SSE - " + LocalTime.now().toString())
                   .build());
}
3. SseEmitter Sınıfını Kullanmak
SseEmitter yazısına taşıdım.

Hiç yorum yok:

Yorum Gönder