首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SSE技术详解:一种全新的HTML5服务器推送事件技术

相对于与之类似的 COMET 和 WebSocket 技术来说,服务器推送事件的使用更简单,对服务器端的改动也比较小。对于某些类型的应用来说,服务器推送事件是最佳的选择。...基本介绍 在介绍 HTML 5 服务器推送事件(SSE技术)之前,首先介绍一些上面提到的几种服务器端数据推送技术。 第一种是 WebSocket。...对于简单的服务器数据推送的场景,使用服务器推送(SSE技术)事件就足够了。 在浏览器支持方面,服务器推送事件(SSE技术)已经在除 IE 外的大部分桌面和移动浏览器上得到了支持。...在介绍完服务器推送事件的规范内容之后,下面介绍服务器端的实现。 SSE实战示例:服务器端和浏览器端实现 从上一节中对通讯协议的描述可以看出,服务器推送事件是一个比较简单的协议。...如果只是需要从服务器推送数据,服务器推送事件的规范更加简单,实现起来更容易。本文对服务器推送事件的规范内容、服务器端和浏览器端的实现都进行了详细的介绍,对如何支持 IE 浏览器也进行了具体的分析。

3.9K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入理解Spring事件机制(二):事件推送

    推送事件对象即可令所有订阅者收到事件。...相关文章: 深入理解Spring事件机制(一):广播器与监听器的初始化 深入理解Spring事件机制(二):事件推送 一、事件推送 1、将事件推送到上下文 当我们借助 Spring 发送一个事件对象的时候...,等到广播器初始化完成后再推送; 如果上下文存在父上下文,则向父上下文也推送事件; 针对早期事件列表,在容器调用 AbstractApplicationContext.refresh 方法进行初始化的过程中...也就是说,当 registerListeners 还没执行前,任何向上下文推送事件实际上都不会立刻执行,而是延迟到 registerListeners 这一步才会推送,在这一步后,向上下文推送事件都会立刻被推送...总结 当我们向 ApplicationContext 推送事件时: ApplicationContext 会将事件推送至内部持有的广播器实例 SimpleApplicationEventMulticaster

    1.8K20

    服务器推送技术

    比如: 股价展示页面实时的获取股价更新 赛事的文字直播,实时更新赛况 通过页面启动一个任务,前端想知道任务后台的实时运行状态 HTML5推广之后,服务端主动推送数据,浏览器接受数据的方式来解决 全双工通信...本质上是一个额外的TCP连接,建立和关闭时握手使用HTTP协议,其他数据传输不使用HTTP协议 HTTP协议适用于复杂双向实时数据通讯场景 在Web网页上的客服、聊天室一般使用WebSocket开发 服务端主动推送...: SSE(Server Send Event) HTML5新标准,用来从服务端实时推送数据到浏览器端,直接建立在当前HTTP连接上 本质上是保持一个HTTP长连接、轻量协议。...事件名称 事件触发说明 事件处理方法 open 当服务器向浏览器第一次发送数据时产生 onopen message 当收到服务器发送的消息时产生 onmessage error 当出现异常时产生 onerror...,处理连接建立事件 onmessage事件监听,处理对方发过来的消息数据 onclose事件监听,处理连接关闭 onerror事件监听,处理交互过程中的异常 示例: websocket实现聊天软件

    1.8K20

    初探 Watermill 构建 Golang 事件驱动程序,SSE 进行 HTTP 服务器推送

    使用 SSE(Server-Sent Events) 进行 HTTP 服务器推送 这个示例是一个类似 twitter 的 web 应用程序,使用 Server-Sent Events 来支持实时刷新。...事件处理程序异步更新读模型(我们使用 Mongo)。 读取模型中的数据可以按原样使用。也可以独立于写模型进行扩展。 请记住,要使用此模式,应用程序中必须接受最终的一致性。...来自该订阅服务器的消息将触发通过 HTTP 推送更新。 在本例中,我们使用 NATS 作为 Pub/Sub,但这可以是 Watermill 支持的任何 Pub/Sub。...Validate 是一个额外的方法,它告诉我们是否应该为特定的 Message 推送更新。...发布了以下事件: PostCreated 将 post 添加到贴子中包含标签的所有 feeds 中。 FeedUpdated 将更新推送到当前访问 feed 页面的所有客户端。

    1.6K20

    SSE 服务器推送

    服务器推送在某些场景下是非常重要且不可或缺的部分,比如看 NBA 总决赛的时候,各种比赛数据的实时更新等,而著名的 WebSocket 协议就可以很简单的实现服务器推送,当然我要讲的并不是 WebSocket...SSE ---- Server-sent event ( 简称 SSE ),顾名思义,服务器推送事件,在 web 的 HTML5 标准中已经得到实现。...而 SSE 其实与上面的场景类似,在响应上做文章,仍然由客户端发起请求,但是服务器接受到请求后保持此连接,一次一次慢慢的推送消息,这就形成了我们看到的服务器推送。...实战 ---- 1、先准备一个我们的服务器端,每秒钟推送数据: 很简单是不是,重点关注下红色框中的部分,保持连接、使用事件流的形式、不使用缓存,每秒钟推送一下当前的时间等,注释我都写了,你肯定可以看懂。...2、再写个前端页面负责展示: 代码很简单,打印下服务器推送的数据,看我的注释你就明白了。 3、最终的效果: 结语 ---- SSE 实现服务器推送更加轻量、实现更简单,某些时候是一种不错的选择。

    1.5K10

    HTML5绘画与拖放事件

    HTML5绘画 在html5中出现了许多新的特性,绘画功能就是其中之一。由于html5新增的这些新特性,所以也在逐渐取代Flash,毕竟Flash比较占用内存,也经常性奔溃。...html5不仅能制作2d的绘画还能做3d的绘画,但是要注意的是这两者使用的函数不一样但都基于canvas。在网络上我们可以搜索到一些使用html5制作的2D或3D的效果图,例如: ? ? ?...拖放事件 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够实现拖放。...ondragstart 事件: 当元素被拖动时就会触发ondragstart 事件,然后通过事件源可以进行一些设置,或者打印消息。 代码示例: ? 运行结果: ?...ondragover事件: ondragover 事件会在被别的元素触碰到时触发,通过这个事件事件源对象,可以设置在何处放置被拖动的元素。 默认地,无法将元素放置到其他元素中。

    3K30

    HTML5 学习总结(五)——WebSocket与消息推送

    ,但不容易直接完成实时的消息推送功能,如聊天室、后台信息提示、实时更新数据等功能,但通过polling、Long polling、长连接、Flash Socket以及HTML5中定义的WebSocket...HTTP协议决定了服务器与客户端之间的连接方式,无法直接实现消息推送(F5已坏),一些变相的解决办法: 双向通信与消息推送 轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接...Websocket: WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。依靠这种技术可以实现客户端和服务器端的长连接,双向实时通信。...当websocket接收到服务器发来的消息的时触发的事件,也是通信中最重要的一个监听事件。...,订阅感兴趣的事件服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。

    2.8K80

    html5利用websocket完成的推送功能(tomcat)

    利用websocket和java完成的消息推送功能,服务器用的是tomcat7.0.42,一些东西是自己琢磨的,也不知道恰不恰当,不恰当处,还请各位见谅,并指出。...2.websocket的优点 以前我们实现推送技术,用的都是轮询,在特点的时间间隔有浏览器自动发出请求,将服务器的消息主动的拉回来,在这种情况下,我们需要不断的向服务器发送请求,然而HTTP request...会占用大量的带宽和服务器资源。 WebSocket API最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。在建立连接之后,服务器可以主动传送数据给客户端。...此外,服务器与客户端之间交换的标头信息很小。...WebSocket并不限于以Ajax(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息; 关于ajax,comet,websocket的详细介绍

    1.4K60

    客户侧产品推送样本事件处置

    在每一年的演习中,我们都会处置好几十起产品安全事件,虽然绝大多数都是已知的漏洞,但仍然有记录和总结的价值。...回顾历年写下的笔记,提炼出八个典型场景进行分享: 1、面向情报公司付费信息的应急 2、面向互联网侧舆情信息的应急 3、客户侧产品推送样本事件处置 4、某邮箱被攻击情报的自我检查 5、办公网出口地址攻击客户蜜罐...01 — 事件描述 某日,客户侧驻场的一线同事,将产品被攻击事件上报至产品应急组。现场使用NTA设备发现异常,并结合丰富的人工经验对事件展开分析。...03 — 处置结果 该事件涉及到的客户,已做后门清除和产品漏洞修复,后续无因为安全产品而遭到攻击的事件。...针对未做同一漏洞修复的演习客户,也陆续联系进行漏洞修复,无此类事件发生,基本上是解决了这一类问题。 04 — 经验总结 经历过该事件,在漏洞挖掘和利用方面有了更深入的理解。

    15020

    Web端服务器推送技术

    服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求。...但HTTP属于无状态连接,即每次请求结束后与服务器的连接会立即释放,服务器不能主动推送消息到客户端,只能由客户端浏览器发起请求。...当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。 ?...是基于TCP的一种新的网络协议,它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。...WebSocket是一种的新型的HTML5技术,当前浏览器的支持并不完善,可以与Flash XMLSocket结合,封装一套通用API,根据不同浏览器特性调用不同的实现,但无论是WebSocket还是Flash

    1.8K30

    蓝鲸6.1 CMDB 事件推送的开源替代方案

    一文中已经介绍,在此我再简单重复下: 蓝鲸5.1 自带“事件推送”功能,当配置信息发生变化的时候,实时通知到关联的系统中; 蓝鲸6.1 不再提供“事件推送”功能,而是由“监听资源变化事件”的一个 CMDB...API 实现,需要我们自行查询; CMDB 版本的迭代,或许说明老版本的“事件推送”已经不符合蓝鲸的设计理念,作为此功能的对接使用者感同深受: 事件推送功能全面性,基本覆盖了CMDB全场景的信息变化;...事件推送更类似一个图形化的API,通过界面就让开发者知道该如何使用; “简单的背后的逻辑复杂化”,这是在对接事件推送接口的第一感受; 由于功能的全面性,意味着数据格式的多样性,对接过程你懂得; 通过对事件推送功能对接过程的回顾以及对替代服务...代表主机详情事件 host_relation 代表主机的关系事件(主要使用) biz 代表业务详情事件 set 代表集群详情事件 module 代表模块详情事件 process 代表进程详情事件 object_instance...时间/事件回溯 虽然时间回溯最长间隔为3小时,我们还是希望对不同粒度的事件进行区分,原则如下: host_relation 主机关系事件,实时生效; module 模块事件,实时生效; set 集群事件

    31210

    HTML5】Canvas 内部元素添加事件处理

    前言 canvas 没有提供为其内部元素添加事件监听的方法,因此如果要使 canvas 内的元素能够响应事件,需要自己动手实现。...配合自定义事件,我们就可以实现为 canvas 内的元素添加事件监听的效果。...源码 演示 自定义事件 为了实现javascript对象的自定义事件,我们可以创建一个管理事件的对象,该对象中包含一个内部对象(当作map使用,事件名作为属性名,事件处理函数作为属性值,因为可能有个多个事件处理函数...,所以使用数组存储事件处理函数),存储相关的事件。...如果一个自定义对象需要添加事件监听,只需要继承 EventTarget。 有序数组 在判断触发某个事件的元素时,需要遍历所有绑定了该事件的元素,判断鼠标位置是否位于元素内部。

    2.2K30

    Pushdeer:开源多协议推送服务器,定制化推送解决方案

    在当今快速发展的信息时代,实时的消息、通知和数据推送变得至关重要。Pushdeer 软件应运而生,作为一款开源的推送服务器软件,它支持多种推送协议,为用户提供了灵活且可定制的推送解决方案。...,无论是简单的消息推送、通知推送,还是更复杂的数据推送。...这为定制化推送服务提供了广阔的空间,满足了各种特定场景下的要求。 使用场景 消息推送 Pushdeer 可以被广泛应用于消息推送场景。...通知推送 系统通知、活动通知等信息可以通过 Pushdeer 进行推送,确保用户及时获取到相关通知,提高用户体验。 数据推送 在需要实时传递数据的场景下,Pushdeer 也能胜任。...-h localhost -t topic -m message 总结 Pushdeer 是一款功能强大的开源推送服务器软件,具备多协议支持、高可用性和强大的扩展性。

    1.2K10
    领券