类org.springframework.web.servlet.mvc.method.annotation.SseEmitter.SseEventBuilder源码实例Demo

下面列出了怎么用org.springframework.web.servlet.mvc.method.annotation.SseEmitter.SseEventBuilder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: cxf   文件: SpringSseEmitterTest.java
@GetMapping("/sse")
public SseEmitter streamSseMvc() {
    final SseEmitter emitter = new SseEmitter();
    final ExecutorService sseMvcExecutor = Executors.newSingleThreadExecutor();
    
    sseMvcExecutor.execute(() -> {
        try {
            for (int eventId = 1; eventId <= 5; ++eventId) {
                SseEventBuilder event = SseEmitter.event()
                    .id(Integer.toString(eventId))
                    .data(new Book("New Book #" + eventId, "Author #" + eventId), MediaType.APPLICATION_JSON)
                    .name("book");
                emitter.send(event);
                Thread.sleep(100);
            }
        } catch (Exception ex) {
            emitter.completeWithError(ex);
        }
    });
    
    return emitter;
}
 
源代码2 项目: tutorials   文件: SseEmitterController.java
@GetMapping("/stream-sse-mvc")
public SseEmitter streamSseMvc() {
    SseEmitter emitter = new SseEmitter();
    ExecutorService sseMvcExecutor = Executors.newSingleThreadExecutor();

    sseMvcExecutor.execute(() -> {
        try {
            for (int i = 0; true; i++) {
                SseEventBuilder event = SseEmitter.event()
                    .data("SSE MVC - " + LocalTime.now()
                        .toString())
                    .id(String.valueOf(i))
                    .name("sse event - mvc");
                emitter.send(event);
                Thread.sleep(1000);
            }
        } catch (Exception ex) {
            emitter.completeWithError(ex);
        }
    });
    return emitter;
}
 
 同包方法