首页 > 其他分享 >SSE 推送技术

SSE 推送技术

时间:2023-09-27 23:00:55浏览次数:30  
标签:推送 技术 SSE SseEmitter 超时 连接 客户端

SSE和WebSocket的区别

  • 数据推送方面
  • SSE 是服务端像客户端的单向通信的技术。
  • WebSocket是双向通讯的技术
  • 协议方面
  • SSE是基于HTTP协议的长连接,超时后可以自动重连
  • WebSocket是基于ws协议的,建立双向连接实现通讯的
  • 订阅的返回值必须是SseEmitter ,返回的数据类型为事件流。执行返回类型的的话需要配置produces = {MediaType.TEXT_EVENT_STREAM_VALUE} 。也可以不配置,请求会自动匹配。
  • 消息的发送,必须通过返回的SseEmitter,调用send()方法。由于需要实时推送,所以需要将创建的SseEmitter 缓存起来,随时推送消息。
  • SseEmitter 空参构造函数默认的超时时间为60s,也可以通过构造参数设置超时时间。案例中超时时间15s。如果设置成0,则表示永不超时。
  • Header中Last-Event-ID 参数为当前连接最新推送消息的ID,该ID可以自定义。消息推送之后,客户端重连之后,Header中会自动携带此参数(Last-Event-ID)。
  • SseEmitter 连接可以注册onCompletion【关闭】,onTimeOut【超时】,onError【错误】事件的回调。


注意事项:

  • map里面存放客户端的ID和连接。
  • 因为SSE连接会超时,超时的连接关闭之后会通过回调删除连接,所以重新连接的连接不会受到消息的推送。所以使用doneMap记录已经推送的客户端。自动连接的新连接补发消息。

建立连接

new EventSource('/foo/sse') 建立连接/订阅消息,页面打开,方法执行会根据订阅的路径请求服务端获取连接。

页面关闭的事件

window.onbeforeunload 监听页面的关闭,但是存在兼容性问题,或者页面异常的关闭都不会触发该方法。所以此方法不可靠。

SSE的使用要注意过期时间的设置,使用了过期时间,就要考虑客户端重连的消息的丢失问题。

使用了永不过期就要考虑防止客户端连接过多造成的OOM




标签:推送,技术,SSE,SseEmitter,超时,连接,客户端
From: https://blog.51cto.com/u_15638932/7630316

相关文章

  • 医疗信创国产化替代目前面临哪些难题?如何利用国产虚拟化技术促进医院信创建设
    亿欧智库《2023中国智慧医院研究报告》中认为:医院各业务系统替换顺序为由边缘至核心,先易后难,逐步实现“应替尽替,真替真用”。还有9个月医疗信创如何完成50%改造任务?近日,上海等省市卫健委联合多部门出台的信创工作实施方案通知中明确要求,市级医院2025年6月前完成全面信创改造工作。......
  • 基于AI算法+视频监控技术的智慧幼儿园解决方案
    在当今社会,为了孩子的健康启蒙教育,很多家长都会选择将孩子托付给幼儿园管理,但是,幼儿有着年龄小、难控制、易发生突发情况等特点,那么,如何能最大限度的保障幼儿在学校的安全呢?TSINGSEE青犀视频融合平台给出了方案。1、安全监控在校园部署监控摄像头并覆盖幼儿园的重要区域,如入口、......
  • 提升技术招聘有效性 | 为什么企业总考算法题?
    前些年技术圈有个经典名梗:广受谷歌员工欢迎的macOS包管理器Homebrew的开发者,技术大佬MaxHowell,去谷歌面试时由于不会做一道非常基础的算法题——翻转二叉树,而被谷歌拒了。当时圈内炸了锅,有人觉得是大佬不屑于去做,有人顺带吐槽了自己的类似经历......  其中一位网友的......
  • AI智能视频监控技术如何助力美好乡村建设?
    随着城市化发展,很多乡村设施也在逐渐完善,智能监控也成了乡村发展必不可少的一环,智能视频监控应该在乡村建设里如何发挥作用呢?1、有效提升安全意识通过在乡村重要区域、公共场所、道路等设置智能视频监控设备,可以有效监控和防范潜在的安全威胁,如盗窃、破坏等。这一举措将提高居民......
  • AI智能视频监控技术如何助力美好乡村建设?
    随着城市化发展,很多乡村设施也在逐渐完善,智能监控也成了乡村发展必不可少的一环,智能视频监控应该在乡村建设里如何发挥作用呢?1、有效提升安全意识通过在乡村重要区域、公共场所、道路等设置智能视频监控设备,可以有效监控和防范潜在的安全威胁,如盗窃、破坏等。这一举措将提高居民的......
  • 聊城国家高新技术企业认定如何提前准备
    聊城国家高新技术企业认定如何提前准备  恒标知产刘经理 随着国家高新技术企业政策调整,高企申报、材料评审、后期审查等环节趋于规范化,很多企业在准备高企申报材料的过程中仍在知识产权、领域选择、科技人员、申报材料准备方面存在困难,接下来对上述难点进行逐一梳理。 ......
  • 低代码开发框架 助力企业打造新时代技术底座
    伴随着信息技术、互联网的日益发展,数字化转型已成为企业发展的新方向。软件作为企业数字化转型的重要工具、连接日常生活与经济的命脉,如今显得尤为重要。近年来,在政府、市场和企业的共同努力下,我国中小企业数字化发展的道路愈发平坦。但从实践上看,中小企业依然遇到诸多困难。对于......
  • 低代码开发框架 助力企业打造新时代技术底座
    伴随着信息技术、互联网的日益发展,数字化转型已成为企业发展的新方向。软件作为企业数字化转型的重要工具、连接日常生活与经济的命脉,如今显得尤为重要。近年来,在政府、市场和企业的共同努力下,我国中小企业数字化发展的道路愈发平坦。但从实践上看,中小企业依然遇到诸多困难。对于企......
  • 剖析华为云Astro Platform技术价值与使用体验
    面对企业IT专业人员紧缺的挑战,华为云Astro低代码平台提供创新解决方案。让非编程专业人士能快速构建、部署应用,缓解开发资源压力,并高度整合技术架构,强化项目沟通协作。使每个参与其中的角色都找到自己的位置,携手全民开发者推动项目向前运行。华为云AstroPlatform统一低代码平台基......
  • 史诗级智能化!Win11 23H2今天正式推送:附升级方法
    Win1123H2今天正式推送,加入了Windows人工智能Copilot(智能副驾),强大的创作者工具可以让用户更轻松、快速地将想法变为现实。此外,新版还将带来更多功能,包括正在扩展语音访问功能,并为讲述人功能新增了新的自然语音,以保障在默认状态下Windows11的无障碍化体验。同时,微软正在通过采......