一、服务端实现
-
使用
@RestController注解创建一个控制器类(Controller) -
创建一个方法来创建一个客户端连接,它返回一个
SseEmitter,处理 GET 请求并产生(produces)文本/事件流 (text/event-stream) -
创建一个新的 SseEmitter, 保存它并从方法中返回
-
在另一个线程中异步发送事件, 先拿到保存的 SseEmitter 并根据需要多次调用调用
SseEmitter.send()方法 -
完成事件发送, 调用
SseEmitter.complete()方法 -
要异常完成发送事件,请调用
SseEmitter.completeWithError()方法
/*
* xxx.com
* Copyright (C) 2021-2024 All Rights Reserved.
*/
package com.sse.demo.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author xxx
* @version SseController.java, v 0.1 2024-07-11 10:11
*/
@Slf4j
@RestController
@RequestMapping("/sse")
public class SseController {
private static final Map<String

最低0.47元/天 解锁文章
625

被折叠的 条评论
为什么被折叠?



