本文介绍: 1)介绍 HTTP 协议 中的 Server-Sent Events(SSE)机制的基本原理与使用方法。SSE用于从服务器持续接收一个数据流的使用场景,比 websocket 更加简单并支持自动重连接。2)要使用 SSE 机制,前端代码要创建 EventSource 对象,并基于EventSource 对象的四种事件:open、message、error、自定义事件实现与后端数据的通信。后端代码接收 open 时的连接后,将向指定的事件推送数据。3)示例在 ESP32 Web 上实时显示传感器数据。
ESP32-Web-Server编程– 使用SSE 实时更新设备信息
概述
如前所述,传统 HTTP 通信协议基于 Request-Apply(请求–响应)机制,浏览器(客户端)只能单向地向服务器发起请求,服务器无法主动向浏览器推送信息。
上节我们讲述了基于 WebSocket 通信协议实现服务器向浏览器推送信息,其实还有一种方法:Server-Sent Events(以下简称 SSE)可以实现这种功能。本文介绍它的用法。
什么是 SSE
SSE 通过服务器向浏览器(客户端)声明,接下来要发送的是流信息(streaming)来实现让浏览器一直保持该连接,并不断地接收更新数据。
也就是说,服务器第一次接收浏览器的请求时,就通知浏览器此次发送的不是一次性的数据包,而是一个数据流,会连续不断地发送过来。这时,浏览器不会关闭连接,会一直等着服务器发过来的新的数据流,视频播放就是这样的例子。本质上,这种通信就是以流信息的方式,完成一次用时很长的下载。
SSE 基于 HTTP 协议,目前除了 IE/Edge,其他浏览器都支持。
SSE 的特点
创建 SSE 对象建立连接
SSE 消息传输机制
SSE 重新连接机制
SSE 消息传输的格式
data 字段
id 字段
event 字段
需求及功能解析
示例解析
目录结构
前端代码
后端代码
示例效果
讨论
总结
资源链接
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。