SpringMVC的SseEmitter实时推送方式
更新时间:2026年03月30日 09:05:28 作者:楠~枫
SseEmitter是SpringMVC提供的一种技术,可以实现服务端向客户端实时推送数据的功能,在Controller中提供一个接口返回SseEmitter对象,发送数据可以在另一个接口调用其send方法,SpringBoot已经集成此功能
SseEmitter简介
SpringMVC提供的一种技术,可以实现服务端向客户端实时推送数据的功能
用法
在Contorller中提供一个接口,返回SseEmitter对象,发送数据可以在另一个接口调用其send方法发送数据,SpringBoot已经集成这个功能
用法示例:
@RestController
public class SseEmitterTestController {
private SseEmitter sseEmitter;
/**
* 步骤一:请求后浏览器会阻塞,直到close后结束阻塞
*/
@RequestMapping("start")
public SseEmitter start() {
//默认是30s超时,设置为0L永不超时
sseEmitter=new SseEmitter(0L);
//将这个对象返回
return sseEmitter;
}
/**
* 步骤二:请求后会像浏览器发送数据,可以多次请求
*/
@RequestMapping("send")
public String send() {
if (sseEmitter!=null){
try {
sseEmitter.send(new Date());
return "send seccuss";
} catch (IOException e) {
e.printStackTrace();
}
}
return "send fail";
}
/**
* 步骤三:请求后会结束对浏览器的阻塞,结束数据发送
*/
@RequestMapping("close")
public String close() {
if (sseEmitter!=null){
sseEmitter.complete();
return "close";
}
return "close fail,sseEmitter is null";
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring Boot中的WebSocketMessageBrokerConfigurer接口使用
在SpringBoot中,我们可以使用 WebSocketMessageBrokerConfigurer接口来配置WebSocket消息代理,以实现实时通信,具有一定的参考价值,感兴趣的可以了解一下2023-11-11
SpringBoot+Redis实现外呼频次限制功能的项目实践
本文提出基于SpringBoot和Redis的外呼频次限制解决方案,采用Redis计数器与滑动窗口算法实现精准控制,具有一定的参考价值,感兴趣的可以了解一下2025-07-07
Java Collections.shuffle()方法案例详解
这篇文章主要介绍了Java Collections.shuffle()方法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下2021-08-08
JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourc
这篇文章主要介绍了JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-07-07


最新评论