有没有什么方法可以保持前后端实时通信?

本文探讨了五种保持前后端实时通信的方法:轮询、长轮询、iframe流、websocket和SSE。轮询简单但效率低下,长轮询优化了实时性,iframe流兼容性好但有资源消耗,websocket提供高效双向通信,而SSE适合单向实时推送,如金融股票应用。各种技术各有优劣,适用场景不同。
摘要由CSDN通过智能技术生成

这个其实就是问轮询,长轮询,iframe流,websocket,以及sse

1 轮询

就是指的客户端与服务端之间一直会有链接,每隔一段时间就会询问一次。有点的话就是实现简单,无需做过多的更改。缺点的话,连接数会变的很多,一个接收,一个发送,每次发送都会有请求头,会耗费流量,也会耗费CPU的效率。还有就是轮询的时间间隔不好控制,长的话会导致用户不能及时接收到消息,短的话增加服务器的负担。所以这时候就出现了长轮询。

2 长轮询

轮询的改进版,客户端发送HTTP请求给服务器之后,没有新消息的话,会一直在等待,有了新消息之后,才会进行返回给客户端。(有点同步等待的意思)在某种程度上减少了减少了网络带宽以及CPU利用率的问题。主要受请求头的数据大概400字节左右,但是真正有用的大概10字节左右,这是多服务器的数据进行周期性的传输,优点的话,做了较好地优化,时效性比较强,缺点的话,链接会消耗资源,服务器没有返回数据,或者程序超时,会造成堵塞问题。

3 iframe事件流

实现方式就是在页面进行一个插入隐藏的iframe。利用其src属性在服务器与客户端进行建立一条长链接,服务器对iframe进行传输数据(数据一般是HTML,或者是负责插入信息的JS),来实时的进行页面更新,优点就是消息可以准时到达,浏览器的兼容性比较好。缺点是服务维护一个长链接会造成增加开销的问题,IE,谷歌,火狐的话会显示加载没有完成࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值