SpringBoot2.0实现服务器主动推送SSE技术
文章目录
- 一、服务器推送技术
- 二、SpringBoot2.0 实现 SSE
一、服务器推送技术
- 客户端轮询:
Ajax
定时拉取 - 服务器主动推送:
WebSocket
WebSocket
是 HTML5
开始提供的一种在单个 TCP
连接上进行全双工通讯的协议。
WebSocket
使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API
中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在 WebSocket API
中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送
- 服务端主动推送:
SSE
(Server Send Event
)
指的是网页自动获取来自服务器的更新,HTML5
新标准,用来从服务端实时推送数据到浏览器端,直接建立在当前http
连接上,本质上是保持一个http
长连接,轻量协议。所有主流浏览器均支持SSE
,除了IE
。
案例:Facebook
、Twitter
更新、估价更新、新的博文、赛事结果等。
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技术相关推荐
- 【SpringBoot】服务器端主动推送SSE技术讲解
=====================16.高级篇幅之SpringBoot2.0服务器端主动推送SSE技术讲解 ============================ 1.服务端推送常用技术介绍 ...
- SpringBoot与ElasticSearch、ActiveMQ、RocketMQ的整合及多环境配置、响应式框架WebFlux、服务器端主动推送SSE技术、生产环境部署、Actuator监控平台
1.SpringBoot 与 ElasticSearch 框架的整合 (1)主要的搜索框架:MySQL.Solr.ElasticSearch MySQL:使用 like 进行模糊查询,存在性能问题 S ...
- 服务器主动推送消息数据给客户端
1 引言 这个问题第一次是我在实现一个导师的方案的时候所发现的,一开始我需要实现服务器与客户端的密钥协商和数据传递,服务器需要主动分发(推送)密钥给客户端,因为以前没有做过相关编码,后来只能想到用反向 ...
- 服务器 主动 推送 客户端浏览器 消息***
前言 通常情况下,无论是web浏览器还是移动app,我们与服务器之间的交互都是主动的,客户端向服务器端发出请求,然后服务器端返回数据给客户端,客户端浏览器再将信息呈现,客户端与服务端对应的模式是: 客 ...
- web应用从服务器主动推送消息到客户端到方式
总结帖 为什么需要服务端向客户端推送消息? 在某些应用功能中,例如定位,游戏,社交消息的推送等,用户都是被动接受u消息的,为了处理这类问题,需要服务端向客户端推送消息. 引言: 普通情况下,有客户端向 ...
- 【开发经验】服务器单向推送——SSE
文章目录 背景 SSE WebSocket SSE实现时间下发功能 代码实现 背景 目前广州疫情,每次出行都需要出示健康码,有的小伙伴比较机智,为了更加快速的通行,对于健康码进行截图,这样就可以很快的 ...
- 除了 Websocket ,服务端还有什么办法能向浏览器主动推送信息?
除了 Websocket ,服务端还有什么办法能向浏览器主动推送信息? 前言 端倪 Server-Sent Events 是什么? Server-Sent Events 与 Websocket 对比 ...
- flux服务器推消息,服务端主动推送数据,除了 WebSocket 你还能想到啥?
原标题:服务端主动推送数据,除了 WebSocket 你还能想到啥? 来自公众号: 江南一点雨 在 上篇文章 中,松哥和大家分享了 WebFlux 的基本用法,小伙伴们已经了解到使用 WebFlux ...
- swoole服务器主动推消息,实现websocket-主动消息推送laravelswoole
实现一个可以主动触发消息推送的功能,这个可以实现向模板消息那个,给予所有成员发送自定义消息,而不需要通过客户端发送消息,服务端上message中监听传送的消息进行做相对于的业务逻辑. 主动消息推送实现 ...
最新文章
- python画图标题_使用pyplot.matshow()函数添加绘图标题
- 史上最全解读 | 飞桨模型库重大升级,主流算法模型全覆盖
- php函数的实现原理及性能分析
- 点击编辑的时候如何绑定DropDownList
- Android__Context
- hdu 2275 Kiki Little Kiki 1 水题
- java静态类_Java静态类
- Linux下通过WebShell反弹Shell的技巧
- BZOJ1013球形空间产生器sphere 高斯消元
- 桌面高效便捷的多窗口调整管理工具 - AquaSnap
- P2P网贷谋求“去担保”:引入保险 收益下滑
- 文本特征提取算法-TF-IDF
- 社会力模型SFM详解 在人群异常检测上的应用
- excel超链接应用:快速生成目录的几个方法-下
- 数据挖掘课程笔记--关联分析
- php怎么把字符串转换成数组?
- 工作感悟之Android系统开发入门
- 883.三维形体投影面积
- P1786 帮贡排序
- 远程桌面无法连接–验证证书过期或无效的一个有效解决办法
热门文章
- Kubernetes Volume及其类型(NFS、SAN) - PV - PVC - PV与PVC与Pod的关系
- Node 之 node-schedule 定时器
- Python动画实现
- 初学构建小项目之仓库管理系统货物管理功能实现(四)
- java面试(二十六)--(1)J2EE中常用名词(2)讲一下redis的主从复制怎么做的?(3)请谈谈你对Javaweb开发中的监听器的理解?(4)按之字形顺序打印二叉树(5)内部类大全
- adams2015怎么把工具栏打开_U盘文件被隐藏怎么恢复?最后一招轻松找回
- emmc,sd,tf,flash等各种存储卡的特点和区别
- 复旦计算机学院研究生双证书,2017年改革后EMBA能拿到双证书了?
- Labeled LDA(有监督)主题模型的理解、推理与编程
- 可能与不可能的边界(P/NP问题趣史)