这个其实就是问轮询,长轮询,iframe流,websocket,以及sse
1 轮询
就是指的客户端与服务端之间一直会有链接,每隔一段时间就会询问一次。有点的话就是实现简单,无需做过多的更改。缺点的话,连接数会变的很多,一个接收,一个发送,每次发送都会有请求头,会耗费流量,也会耗费CPU的效率。还有就是轮询的时间间隔不好控制,长的话会导致用户不能及时接收到消息,短的话增加服务器的负担。所以这时候就出现了长轮询。
2 长轮询
轮询的改进版,客户端发送HTTP请求给服务器之后,没有新消息的话,会一直在等待,有了新消息之后,才会进行返回给客户端。(有点同步等待的意思)在某种程度上减少了减少了网络带宽以及CPU利用率的问题。主要受请求头的数据大概400字节左右,但是真正有用的大概10字节左右,这是多服务器的数据进行周期性的传输,优点的话,做了较好地优化,时效性比较强,缺点的话,链接会消耗资源,服务器没有返回数据,或者程序超时,会造成堵塞问题。
3 iframe事件流
实现方式就是在页面进行一个插入隐藏的iframe。利用其src属性在服务器与客户端进行建立一条长链接,服务器对iframe进行传输数据(数据一般是HTML,或者是负责插入信息的JS),来实时的进行页面更新,优点就是消息可以准时到达,浏览器的兼容性比较好。缺点是服务维护一个长链接会造成增加开销的问题,IE,谷歌,火狐的话会显示加载没有完成

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

被折叠的 条评论
为什么被折叠?



