思路
一个基于订阅发布机制的SSE事件。客户端可以请求订阅api(携带客户端id),与服务器建立SSE链接;后续服务器需要推送消息到客户端时,再根据客户端id从已建立链接的会话中找到目标客户端,将消息推送出去。
后端
这个控制器类允许客户端订阅、接收消息和断开连接,通过 pool 存储 SseEmitter 并对其进行管理。
package com.example.q11e.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import java.io.IOException;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
@RestController
public class SseController {
// 存储已订阅的客户端的会话列表
private final Map<String, SseEmitter> pool = new ConcurrentHashMap<>();
// 向特定的 SseEmitter 发送消息
public void publisher(String id_sid, int content) {
// 根据 id_sid 从映射中获取 SseEmitter
SseEmitter sseE

最低0.47元/天 解锁文章
5165

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



