实时WEB推送的四种实现方案

实时WEB推送有哪些实现方案?

现在确实有不少这样的场景,当后台数据发生变化,需要主动“通知”前台进行页面刷新,实时WEB推送实现方案有以下4种:

轮询WEB推送

实时WEB推送的四种实现方案-1
很容易理解,实现起来也非常简单的一种WEB推送方法:客户端每隔一段时间向后台发送一次请求,把最新的数据取回来。

当然缺点也比较明显,如果定时任务的时间设置比较长,那么数据更新和展示会不及时;如果定时任务的时间设置的比较短,那么频繁地访问后台,也会增加后台服务器的压力。

长轮询WEB推送

实时WEB推送的四种实现方案-2
如果是轮询的话,客户端每次向后台请求数据的时候,都会建立一次连接;而长轮询,客户端发送请求给服务器之后,如果有最新数据的话,就直接返回,如果没有最新数据的话,就等待,当有新数据的时候再返回。

缺点也显而易见,因为保持连接也是会消耗资源的,并且如果长时间没有新数据的话,也会发生超时。

Iframe WEB推送

实时WEB推送的四种实现方案-3
这个方式的本质是基于Iframe的HTTP长连接实现;在HTML页面里嵌入一个隐蔵的Iframe,然后把src属性设为一个长连接请求,服务器就可以向Iframe传输数据了。

维护长链接就需要增加开销,而且需要考虑连接中断、重连等问题。

WebSocket实时推送

实时WEB推送的四种实现方案-4
HTTP协议的不足,在于HTTP协议只能由客户端发起请求,并且一个Request要对应一个Response(长链接也是如此)。

WebSocket实时推送,是要在客户端和服务器之间,建立一个通道,建立一个【真的长链接】;一旦确立WebSocket通信连接,不论服务器还是客户端,任意一方都可直接向对方发送数据,这个是真正意义的双向通信;并且数据格式可以是文本,也可以是二进制数据。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2466060800@qq.com 举报,一经查实,本站将立刻删除。