WebFlux系列(四)Server-Sent Events(续)

Java#Spring#WebFlux#WebClient#Reactor#EventSource

页面EeventSource如何接收SSE推送的数据

讲解: https://www.bilibili.com/vide...

WebfluxServerApplication.java

package com.example.webfluxserver;

import lombok.extern.log4j.Log4j2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.codec.ServerSentEvent;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

import java.time.Duration;

@Log4j2
@SpringBootApplication
public class WebfluxServerApplication extends BaseApplication {
    public static void main(String[] args) {
        SpringApplication.run(WebfluxServerApplication.class, args);
    }

    @RestController
    class EmployeeController {

        @CrossOrigin
        @GetMapping(value = "sse")
        public Flux> sse(){
            return  Flux.interval(Duration.ofMillis(1000)).map(val ->{
                return ServerSentEvent.builder()
                        //.id(UUID.randomUUID().toString())
                        .event("ping")
                        .data(val.toString())
                        .build();
            });
        }

    }
}

sse.html



    
    Server-sent events demo




公众号,坚持每天3分钟视频学习

你可能感兴趣的:(spring,reactor,springboot)