Spring Boot 2.x实战54 - Spring Web MVC 26 - 异步请求(HTTP Streaming - SSE)

本文介绍了Spring Web MVC对SSE规范的支持,通过SseEmitter实现服务端向客户端推送实时数据。通过示例展示了如何创建控制器处理异步请求,并创建HTML5页面接收SSE事件。同时提到了作者的新书《从企业级开发到云原生微服务:Spring Boot 实战》,涵盖Spring Boot开发的多个方面。
摘要由CSDN通过智能技术生成

Spring MVC提供了SseEmitter用来提供对W3C的SSE规范的支持。SSE是Server-Sent Events的缩写。HTML5 API 提供了EventSource对象和服务端交互,服务端返回数据时头数据里的内容类型为:text/event-stream

我们的控制器的代码和ResponseBodyEmitter的几乎差不多:

@RestController
@RequestMapping("/async")
@Slf4j
public class AsyncController {
   

    private static Map<Long, SseEmitter> sseEmitterMap = new HashMap<>();

		//可使用produces属性执行返回的头信息中的内容类型
    @GetMapping(value = "/{id}/sse", produces = {
   MediaType.TEXT_EVENT_STREAM_VALUE}) 
    public SseEmitter sseEmitter(@PathVariable Long id){
   
        SseEmitter emitter = new SseEmitter();
        sseEmitterMap.put(id, emitter);
        return emitter;
    }

    @GetMapping("/{id}/invoke-sse")
    public void invokeSseEmitter(@PathVariable Long id
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值