h5 server send event(sse)

1. sse概述

  1. 概念:
 H5支持使用JS脚本不间断的访问服务器(推送)
  1. 轮询:
页面使用js的定时器,定时发送请求查询最新数据
使用js将最新数据加载至页面
每发送一次数据,需要建立新的连接
时间间隔由客户端决定
优点:不需要刷新页面、实时更新
缺点:定时器时间间隔间隔太长:数据不及时间隔太短:服务器压力太大
  1. SSE基于长轮询:
建立一次连接即可
连接断开会自动重连(需要保证客户端没关闭)
只能从服务器发送数据到客户端
SSE实现比较简单
时间间隔由服务器决定
  1. SSE流程:
客户端发送消息到服务器
服务器发送数据到客户端(业务数据、间隔时间)
存在阻塞(接收到服务器发过来的数据才能开始下一次请求)
  1. 原理(流):
严格地说,HTTP 协议无法做到服务器主动推送信息。
但是,有一种变通方法,就是服务器向客户端声明,
接下来要发送的是流信息(streaming)。
也就是说,发送的不是一次性的数据包,而是一个数据流,
会连续不断地发送过来。这时,客户端不会关闭连接,
会一直等着服务器发过来的新的数据流,视频播放就是这样的例子。
本质上,这种通信就是以流信息的方式,完成一次用时很长的下载。
SSE 就是利用这种机制,使用流信息向浏览器推送信息。
它基于 HTTP 协议,目前除了 IE/Edge,其他浏览器都支持

2. sse代码实现

  1. js
 <script>// 原生jsvar source=new EventSource("地址");source.onmessage=function(e){//e参数就是事件参数// e.data 就表示服务器返回的数据};// jQuery$(source).on("message",function(e){//e参数是包装之后的事件参数//var data=$(e).attr("data");var data=e.data;});//open	连接打开之后//message	服务器返回之后//error	服务器访问失败之后//var ele="<div></div>";//$(ele); //变成了一个对象</script>
  1. 服务器servlet为例
String data="data:数据内容\n\n"; //返回给浏览器的数据String retry="retry:毫秒数\n\n"; //指定下次尝试的间隔时间//可选,不写表示没有间隔response.setContentType("text/event-stream");response.setCharacterEncoding("utf-8");OutputStream out=response.getOutputStream();out.write(data.getBytes("utf-8"));out.write(retry.getBytes("utf-8"));out.close();

3. 总结

取代了计时器不断访问服务器,由服务器控制访问的时间。
sse的取代品websocket。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息抽取--关键句提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 关键句提取 在一些场合&#xff0c;关键词或关键短语依然显得碎片化&#xff0c;不足以表达完整的主题。这时通常提取中心句子作为文章的简短摘要。 2 问题 关键句提…

Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null

最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 Connection reset 会在客户端不知道 channel 被关闭的情况下, 触发了 eventloop 的 unsafe.read() 操作抛出 而 ClosedChannelException 一…

注解方式实现aop

aop注解实现spring配置文件目标接口&#xff0c;目标实现类&#xff0c;切面类 注解写法使用spring-test测试spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmln…

文本聚类

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 聚类(cluster analysis )指的是将给定对象的集合划分为不同子集的过程&#xff0c;目标是使得每个子集内部的元素尽量相似&#xff0c;不同子集间的元素尽量不相似。 …

sublime text3下BracketHighlighter的配置方法

st3的配置方法和st2是有区别的&#xff0c;所以网上搜索到的方法大多不能用&#xff0c;我google之后总结了一下。 一、 1、在st3中按preferences-->package settings-->Bracket highlighter-->Bracket settings-Default打开配置文件。 2、将配置文件信息全选复制一份…

利用spring注解创建bean

spring注解spring 原始注解1.1 Component注解1.2 Controller,Service,Repository同上1.3 注解方式依赖注入spring 新注解1. 用来解析配置类&#xff0c;利用配置类替代xml注解代替了xml的繁琐配置 spring 原始注解 1.1 Component注解 <!--spring 使用注解创建对象 compone…

文本分类--普通分类

1 基本概念 文本分类 文本分类&#xff08;text classification&#xff09;&#xff0c;指的是将一个文档归类到一个或多个类别的自然语言处理任务。文本分类的应用场景非常广泛&#xff0c;包括垃圾邮件过滤、自动打标等任何需要自动归档文本的场合。 文本分类在机器学习中属…

hdoj 2041 超级阶梯

代码&#xff1a; #include <stdio.h>int main(){int n;int i;int m;int count;int dp[50];while(scanf("%d",&n)!EOF){dp[1]1;dp[2]1;dp[3]2;while(n--){count0;scanf("%d",&m);for(i4; i<m; i){dp[i]dp[i-1]dp[i-2];}printf("%d\n…

文本分类--情感分析

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 情感分析 对于情感分析而言&#xff0c;只需要准备标注了正负情感的大量文档&#xff0c;就能将其视作普通的文本分类任务来解决。此外&#xff0c;一些带有评分的电影…

websocket使用

websocket1. 概述2. websocket的用法3. js代码实现4. 服务器端代码实现maven下载地址&#xff1a;https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket 1. 概述 什么是websocket - WebSocket是一种网络传输协议&#xff0c; 可在单个TCP连接上进行全双工…

深度学习与自然语言处理

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 传统方法的局限 1.1 传统方法的套路 传统方法的处理流程简单来说就是&#xff1a;特征提取传统机器学习模型训练&#xff1b; 特征提取&#xff1a; 使用了特征模板、TF-IDF、…

linux 烧写(1)

第一部分: 一、BootLoader的概念 BootLoader是系统加电启运行的第一段软件代码&#xff0e;回忆一下PC的体系结构我们可以知道&#xff0c;PC机中的引导加载程序由BIOS&#xff08;其本质就是一段固件程序&#xff09;和位于硬盘MBR中的引导程序一起组成。BIOS在完成硬件检测和…

利用websocket实现一对一聊天

一对一聊天websocket1. 效果展示2. 业务分析&#xff08;逻辑展示...&#xff09;3. 技术点功能 即时发送消息||随时发送消息历史消息显示已读未读状态 1. 效果展示 由于没做登录&#xff0c;就以jack和rose两人聊天 两人可相互发消息 持续输出. . 当只有jack在线时 嘤…

中文分词--词典分词--最长匹配

&#xff08;个人学习笔记&#xff0c;慎重参考&#xff09; 1 基本概念 中文分词 指的是将一段文本拆分为一系列单词的过程&#xff0c;这些单词顺序拼接后等于原文本。 作为中文信息处理的第一站&#xff0c;是后续nlp任务的基础&#xff0c;中文分词算法大致可分为词典规则…

css3动画animation,transition

animation demo1 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>animation动画</title><style>#div1 {width: 100px;height: 100px;background-color: pink;position: absolute;top: 10%;left: 25%;}/* 延迟…

PLSQL Developer 运用Profiler 分析存储过程性能

最近应公司需要&#xff0c;需要编写ORACLE存储过程。本人新手&#xff0c;在完成存储过程的编写后&#xff0c;感觉需要对存储过程中各个语句的执行时间进行分析&#xff0c;以便 对整个存储过程进行优化。 由于用的是PLSQL Developer 客户端工具&#xff0c;而网上大多介绍的…