前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SSE 服务器推送

SSE 服务器推送

作者头像
凌虚
发布于 2020-07-20 03:32:50
发布于 2020-07-20 03:32:50
1.6K0
举报

服务器推送在某些场景下是非常重要且不可或缺的部分,比如看 NBA 总决赛的时候,各种比赛数据的实时更新等,而著名的 WebSocket 协议就可以很简单的实现服务器推送,当然我要讲的并不是 WebSocket ,而是 server-sent event ( SSE )。

SSE


Server-sent event ( 简称 SSE ),顾名思义,服务器推送事件,在 web 的 HTML5 标准中已经得到实现。

SSE 本质上仍然是使用 HTTP( 包括后文均指 1.1 版 )协议,其本身并没有跳出 HTTP 协议内容的规范, HTTP 协议其实是无法做到服务器主动推送的,那么 SSE 又是如何实现的呢?

当我们点击某个视频进行观看,这时就相当于客户端发起一个 HTTP 请求,而视频服务器接受到请求之后进行响应,并将视频通过 stream 的形式源源不断的发送给客户端,其实这就是我们看视频的时候不断增长的进度条,为什么这样做,因为响应的文件太大,无法直接完成传输,所以就以 stream 流的形式进行。

而 SSE 其实与上面的场景类似,在响应上做文章,仍然由客户端发起请求,但是服务器接受到请求后保持此连接,一次一次慢慢的推送消息,这就形成了我们看到的服务器推送。

SSE 兼容性一览


通过上图我们可以看到 SSE 在 PC 和移动端都是支持的,至于 IE 这个老大难,大家都懂的。

实战


1、先准备一个我们的服务器端,每秒钟推送数据:

很简单是不是,重点关注下红色框中的部分,保持连接、使用事件流的形式、不使用缓存,每秒钟推送一下当前的时间等,注释我都写了,你肯定可以看懂。

2、再写个前端页面负责展示:

代码很简单,打印下服务器推送的数据,看我的注释你就明白了。

3、最终的效果:

结语


SSE 实现服务器推送更加轻量、实现更简单,某些时候是一种不错的选择。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Node Python Go全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Cloud Gateway的全局异常处理
Spring Cloud Gateway中的全局异常处理不能直接用@ControllerAdvice来处理,通过跟踪异常信息的抛出,找到对应的源码,自定义一些处理逻辑来符合业务的需求。
猿天地
2018/10/23
3.8K0
SpringBoot 定义优雅全局统一 Restful API 响应和统一异常处理,太优雅了!
假如你作为项目组长,为 Spring Boot 项目设计一个规范的统一的RESTfulAPI 响应框架。
码哥字节
2024/11/23
5040
SpringBoot 定义优雅全局统一 Restful API 响应和统一异常处理,太优雅了!
【SpringBoot web-3】web项目统一数据封装与全局异常处理
阿里巴巴的 fastjson是目前应用最广泛的JSON解析框架。本文也将使用fastjson。
云深i不知处
2020/09/16
8040
解决com.alibaba.fastjson.JSONException: create instance error...
在使用​​com.alibaba.fastjson​​库进行JSON序列化和反序列化时,我们有时会遇到以下错误信息:​​com.alibaba.fastjson.JSONException: create instance error​​。这个错误通常是由于FastJson无法创建对象实例而导致的。
大盘鸡拌面
2023/11/02
2.7K0
Spring Cloud 如何统一异常处理?写得太好了!
点击关注公众号,Java干货及时送达 作者:BNDong 链接:www.cnblogs.com/bndong/p/10135370.html 前言 在启动应用时会发现在控制台打印的日志中出现了两个路径为 {[/error]} 的访问地址,当系统中发送异常错误时,Spring Boot 会根据请求方式分别跳转到以 JSON 格式或以界面显示的 /error 地址中显示错误信息。 2018-12-18 09:36:24.627  INFO 19040 --- [           main] s.w.s.
Java技术栈
2022/06/16
1.8K0
Spring Cloud 如何统一异常处理?写得太好了!
如何完美解决 org.springframework.http.converter.HttpMessageNotReadableException: JSON parse 错误
在Spring Boot项目中,org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error 是一个常见的错误。本博客将详细介绍该错误的原因、解决方案以及最佳实践,帮助开发者在项目中避免和处理此类错误。关键词:Spring Boot,JSON parse error,HttpMessageNotReadableException,异常处理。
猫头虎
2024/06/21
3.2K0
Spring Boot Error Response
在昨天的文章最后,我提到一个问题,就是我的例子对错误处理的设计不够。按照RESTful的设计,既然请求是借助HTTP的方法,那么返回信息也应该借助HTTP的状态码和其他信息。经过查找资料,决定将这篇文章中提到的例子实践一次,并用我的话总结下。
阿杜
2018/08/06
1.1K0
Spring Cloud实战小贴士:Zuul统一异常处理(一)
在上一篇《Spring Cloud源码分析(四)Zuul:核心过滤器》一文中,我们详细介绍了Spring Cloud Zuul中自己实现的一些核心过滤器,以及这些过滤器在请求生命周期中的不同作用。我们会发现在这些核心过滤器中并没有实现error阶段的过滤器。那么这些过滤器可以用来做什么呢?接下来,本文将介绍如何利用error过滤器来实现统一的异常处理。 过滤器中抛出异常的问题 首先,我们可以来看看默认情况下,过滤器中抛出异常Spring Cloud Zuul会发生什么现象。我们创建一个pre类型的过滤器,并
程序猿DD
2018/02/01
1.2K0
基于SpringBoot的0代码全自动构建中小型项目
spring-boot-quick-project-fars全名为spring-boot-quick-project-front-and-rear-separation 是一基于SpringBoot,MyBatis等开源框架快速构建CSD(Controller-Service-DAO)层的项目,用于快速搭建中小型的API、RESTful API项目。使用简单,运行稳定快捷,摆脱重复的劳动,专注业务代码的编写。 下面是一个简单的视频Demo,基于本项目可以在短短几分钟内实现一套简单的API,0代码编写,实现单表的任意增删改查操作。
谙忆
2021/01/21
7920
基于SpringBoot的0代码全自动构建中小型项目
HTTP Error 400 Bad request 的问题分析解决
Failed to convert property value of type 'java.lang.String' to required type 'java.math.BigDecimal' for property 'investmentEnsureMoneyInterest'; nested exception is java.lang.NumberFormatException
挑战者
2019/01/02
5.4K0
Spring Cloud Gateway过滤器精确控制异常返回(实战,完全定制返回body)
本篇概览 Spring Cloud Gateway应用中,处理请求时若发生异常未被捕获,请求方收到的响应是系统默认的内容,无法满足实际业务需求 因此,从前一篇文章《Spring Cloud Gateway过滤器精确控制异常返回(分析篇)》开始,咱们深入分析了Spring Cloud Gateway的相关源码,了解到全局异常的处理细节,然后,通过前文《Spring Cloud Gateway过滤器精确控制异常返回(实战,控制http返回码和message字段)》的实战,咱们已经能随意设置http返回码,以及b
程序员欣宸
2021/12/07
7500
Spring Cloud Gateway过滤器精确控制异常返回(实战,完全定制返回body)
SpringBootRestFul快速入门
SpringBootRestFul 1.什么是 RESTFul RESTful 是一种软件架构风格、设计风格,而不是标准。 只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风 格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 当前阶段可以理解为 使用请求方式(POST,GET,PUT,DELETE)来定位方法的一种请求路径写法.
Maynor
2021/04/09
6730
如何排查和解决 Whitelabel Error Page: There was an unexpected error (type=Internal Server Error, status=5问题
当你遇到 Whitelabel Error Page 错误时,尤其是像下面的错误信息:
猫头虎
2025/03/12
5930
如何排查和解决 Whitelabel Error Page: There was an unexpected error (type=Internal Server Error, status=5问题
Spring 全家桶之 Spring Boot 2.6.4(七)- Exception
使用IDEA创建一个工程spring-boot-exception,只需要添加基本的依赖即可
RiemannHypothesis
2022/09/26
9890
Spring 全家桶之 Spring Boot 2.6.4(七)- Exception
Spring Cloud微服务如何设计异常处理机制?
今天和大家聊一下在采用Spring Cloud进行微服务架构设计时,微服务之间调用时异常处理机制应该如何设计的问题。我们知道在进行微服务架构设计时,一个微服务一般来说不可避免地会同时面向内部和外部提供相应的功能服务接口。面向外部提供的服务接口,会通过服务网关(如使用Zuul提供的apiGateway)面向公网提供服务,如给App客户端提供的用户登陆、注册等服务接口。
Java_老男孩
2019/06/05
2.5K2
SpringBoot错误信息处理机制及原理
ErrorMvcAutoConfiguration这个类存放了所有关于错误信息的自动配置。
石的三次方
2021/01/06
9530
python requests post
环境:  : python3 后台:java 触发环境 使用 requests  post提交数据时,报错如下: Java 异常: com.alibaba.fastjson.JSONException: syntax error, pos 1, json : check=Y&amp************** 调用 com.alibaba.fastjson.JSONObject.parseObject 期间。 ******************************** Called from:WEBL
py3study
2020/01/07
8510
Spring Cloud Zuul中异常处理细节
Spring Cloud Zuul对异常的处理整体来说还是比较方便的,流程也比较清晰,只是由于Spring Cloud发展较快,各个版本之间有差异,导致有的小伙伴在寻找这方面的资料的时候经常云里雾里,
江南一点雨
2018/04/02
3.1K0
Spring Cloud Zuul中异常处理细节
SpringMVC学习笔记(五) --- 异常处理、图片上传、Json数据交互、RESTful支持、拦截器
springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。
挽风
2021/04/13
7670
SpringMVC学习笔记(五) --- 异常处理、图片上传、Json数据交互、RESTful支持、拦截器
java异常正确打印姿势
至于异常为什么被覆盖,因为一个方法无法出现两个异常。修复方式是,finally 代码块自己负责异常捕获和处理。
小小纽扣
2024/04/23
3610
推荐阅读
相关推荐
Spring Cloud Gateway的全局异常处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档