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接口使用

    Spring Boot中的WebSocketMessageBrokerConfigurer接口使用

    在SpringBoot中,我们可以使用 WebSocketMessageBrokerConfigurer接口来配置WebSocket消息代理,以实现实时通信,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • SpringBoot+Redis实现外呼频次限制功能的项目实践

    SpringBoot+Redis实现外呼频次限制功能的项目实践

    本文提出基于SpringBoot和Redis的外呼频次限制解决方案,采用Redis计数器与滑动窗口算法实现精准控制,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07
  • Java Collections.shuffle()方法案例详解

    Java Collections.shuffle()方法案例详解

    这篇文章主要介绍了Java Collections.shuffle()方法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java轻量级权限认证框架Sa-Token的使用

    Java轻量级权限认证框架Sa-Token的使用

    Sa-Token是一个轻量级Java权限认证框架,本文就详细的来介绍一下Java轻量级权限认证框架Sa-Token的使用,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权等,感兴趣的可以了解一下
    2022-03-03
  • Java8 Optional常用方法使用场景分析

    Java8 Optional常用方法使用场景分析

    这篇文章主要介绍了Java8 Optional常用方法使用场景,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 分享Spring的下载组件

    分享Spring的下载组件

    这篇文章主要为大家分享了Spring的下载组件,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别

    JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourc

    这篇文章主要介绍了JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Java数据脱敏常用方法(3种)

    Java数据脱敏常用方法(3种)

    数据脱敏常用在电话号码和身份证号,本文主要介绍了Java数据脱敏常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java提取两个字符串中的相同元素方法

    Java提取两个字符串中的相同元素方法

    今天小编就为大家分享一篇Java提取两个字符串中的相同元素方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Java swing实现支持录音等功能的钢琴程序

    Java swing实现支持录音等功能的钢琴程序

    这篇文章主要为大家详细介绍了Java swing实现钢琴程序,支持录音等功能的Java钢琴源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论