文章目录

  • 一、服务器推送技术
  • 二、SpringBoot2.0 实现 SSE

一、服务器推送技术

  1. 客户端轮询Ajax定时拉取
  2. 服务器主动推送WebSocket

WebSocketHTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送

  1. 服务端主动推送:SSE(Server Send Event)

指的是网页自动获取来自服务器的更新,HTML5新标准,用来从服务端实时推送数据到浏览器端,直接建立在当前http连接上,本质上是保持一个http长连接,轻量协议。所有主流浏览器均支持SSE,除了IE

案例:FacebookTwitter更新、估价更新、新的博文、赛事结果等。

js代码:

var source=new EventSource("htttp://www.xxx.com");
source.onmessage=function(event){document.getElementById("result").innerHTML+=event.data + "<br />";
};
  • 创建一个新的 EventSource对象,然后规定发送更新的页面的url
  • 每接收到一次更新,就会发生 onmessage 事件
  • onmessage事件发生时,把已接收的数据推入 id"result"的元素中

二、SpringBoot2.0 实现 SSE

①服务器端代码

@RestController
@RequestMapping("/sse")
public class SSEController {@RequestMapping(value = "/data",produces = MediaType.TEXT_EVENT_STREAM_VALUE)public String data(){try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}return "模拟动态数据...."+Math.random();}}

②前端代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>测试服务器推送技术</title><script type="text/javascript">var data=new EventSource("http://localhost:8080/sse/data")data.onmessage  = function (event) {document.getElementById("result").innerText=event.data}</script>
</head>
<body><h1>动态数据</h1><div id="result"></div>
</body>
</html>

③测试效果

SpringBoot2.0实现服务器主动推送SSE技术相关推荐

  1. 【SpringBoot】服务器端主动推送SSE技术讲解

    =====================16.高级篇幅之SpringBoot2.0服务器端主动推送SSE技术讲解 ============================ 1.服务端推送常用技术介绍 ...

  2. SpringBoot与ElasticSearch、ActiveMQ、RocketMQ的整合及多环境配置、响应式框架WebFlux、服务器端主动推送SSE技术、生产环境部署、Actuator监控平台

    1.SpringBoot 与 ElasticSearch 框架的整合 (1)主要的搜索框架:MySQL.Solr.ElasticSearch MySQL:使用 like 进行模糊查询,存在性能问题 S ...

  3. 服务器主动推送消息数据给客户端

    1 引言 这个问题第一次是我在实现一个导师的方案的时候所发现的,一开始我需要实现服务器与客户端的密钥协商和数据传递,服务器需要主动分发(推送)密钥给客户端,因为以前没有做过相关编码,后来只能想到用反向 ...

  4. 服务器 主动 推送 客户端浏览器 消息***

    前言 通常情况下,无论是web浏览器还是移动app,我们与服务器之间的交互都是主动的,客户端向服务器端发出请求,然后服务器端返回数据给客户端,客户端浏览器再将信息呈现,客户端与服务端对应的模式是: 客 ...

  5. web应用从服务器主动推送消息到客户端到方式

    总结帖 为什么需要服务端向客户端推送消息? 在某些应用功能中,例如定位,游戏,社交消息的推送等,用户都是被动接受u消息的,为了处理这类问题,需要服务端向客户端推送消息. 引言: 普通情况下,有客户端向 ...

  6. 【开发经验】服务器单向推送——SSE

    文章目录 背景 SSE WebSocket SSE实现时间下发功能 代码实现 背景 目前广州疫情,每次出行都需要出示健康码,有的小伙伴比较机智,为了更加快速的通行,对于健康码进行截图,这样就可以很快的 ...

  7. 除了 Websocket ,服务端还有什么办法能向浏览器主动推送信息?

    除了 Websocket ,服务端还有什么办法能向浏览器主动推送信息? 前言 端倪 Server-Sent Events 是什么? Server-Sent Events 与 Websocket 对比 ...

  8. flux服务器推消息,服务端主动推送数据,除了 WebSocket 你还能想到啥?

    原标题:服务端主动推送数据,除了 WebSocket 你还能想到啥? 来自公众号: 江南一点雨 在 上篇文章 中,松哥和大家分享了 WebFlux 的基本用法,小伙伴们已经了解到使用 WebFlux ...

  9. swoole服务器主动推消息,实现websocket-主动消息推送laravelswoole

    实现一个可以主动触发消息推送的功能,这个可以实现向模板消息那个,给予所有成员发送自定义消息,而不需要通过客户端发送消息,服务端上message中监听传送的消息进行做相对于的业务逻辑. 主动消息推送实现 ...

最新文章

  1. python画图标题_使用pyplot.matshow()函数添加绘图标题
  2. 史上最全解读 | 飞桨模型库重大升级,主流算法模型全覆盖
  3. php函数的实现原理及性能分析
  4. 点击编辑的时候如何绑定DropDownList
  5. Android__Context
  6. hdu 2275 Kiki Little Kiki 1 水题
  7. java静态类_Java静态类
  8. Linux下通过WebShell反弹Shell的技巧
  9. BZOJ1013球形空间产生器sphere 高斯消元
  10. 桌面高效便捷的多窗口调整管理工具 - AquaSnap
  11. P2P网贷谋求“去担保”:引入保险 收益下滑
  12. 文本特征提取算法-TF-IDF
  13. 社会力模型SFM详解 在人群异常检测上的应用
  14. excel超链接应用:快速生成目录的几个方法-下
  15. 数据挖掘课程笔记--关联分析
  16. php怎么把字符串转换成数组?
  17. 工作感悟之Android系统开发入门
  18. 883.三维形体投影面积
  19. P1786 帮贡排序
  20. 远程桌面无法连接–验证证书过期或无效的一个有效解决办法

热门文章

  1. Kubernetes Volume及其类型(NFS、SAN) - PV - PVC - PV与PVC与Pod的关系
  2. Node 之 node-schedule 定时器
  3. Python动画实现
  4. 初学构建小项目之仓库管理系统货物管理功能实现(四)
  5. java面试(二十六)--(1)J2EE中常用名词(2)讲一下redis的主从复制怎么做的?(3)请谈谈你对Javaweb开发中的监听器的理解?(4)按之字形顺序打印二叉树(5)内部类大全
  6. adams2015怎么把工具栏打开_U盘文件被隐藏怎么恢复?最后一招轻松找回
  7. emmc,sd,tf,flash等各种存储卡的特点和区别
  8. 复旦计算机学院研究生双证书,2017年改革后EMBA能拿到双证书了?
  9. Labeled LDA(有监督)主题模型的理解、推理与编程
  10. 可能与不可能的边界(P/NP问题趣史)