网站即时通讯(网页即时聊天)
现在确实有不少这样的场景,当后台数据发生变化,需要主动“通知”前台进行页面刷新,实现方案有这么几种:
轮询很容易理解,实现起来也非常简单的一种方法:客户端每隔一段时间向后台发送一次请求,把最新的数据取回来。
当然缺点也比较明显,如果定时任务的时间设置比较长,那么数据更新和展示会不及时;如果定时任务的时间设置的比较短,那么频繁地访问后台,也会增加后台服务器的压力。
长轮询如果是轮询的话,客户端每次向后台请求数据的时候,都会建立一次连接;而长轮询,客户端发送请求给服务器之后,如果有最新数据的话,就直接返回,如果没有最新数据的话,就等待,当有新数据的时候再返回。
缺点也显而易见,因为保持连接也是会消耗资源的,并且如果长时间没有新数据的话,也会发生超时。
Iframe这个方式的本质是基于Iframe的传输数据了。
维护长链接就需要增加开销,而且需要考虑连接中断、重连等问题。
WebSocket(长链接也是如此)。
WebSocket,是要在客户端和服务器之间,建立一个通道,建立一个【真的长链接】;一旦确立WebSocket通信连接,不论服务器还是客户端,任意一方都可直接向对方发送数据,这个是真正意义的双向通信;并且数据格式可以是文本,也可以是二进制数据。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
相关推荐
- 湖北三江航天建筑工程有限公司以 60925996.99 元中标红林总装厂房二期工程
- 江西省天久地矿建设集团有限公司中标龙里县城区排涝工程勘测
- 北京中和联信供应链管理有限公司中标山地农业科技创新基地植物表型研究设备采购及伴随服务(重新招标)项目,中标金额 7764000 元
- 霸州市佳理鑫五金制品厂中标新乐市第三中学采购项目
- 河北泽辉市政工程有限公司等为路南区乡村振兴环境综合治理项目(一期)一标段工程总承包(EPC)(二次)中标候选人
- 河北石府建设工程有限公司10110736.93元中标高铁片区景观提升项目施工三标段
- 中基恒源建设有限公司中标高铁片区(含新华商业广场)景观提升项目施工五标段,中标价 13430852.95 元
- 九芝堂换帅完成工商变更
- 山西建设投资集团有限公司为大宁县水果供应链基地运营配套建设项目施工(二次)第一中标候选人
- 浙江宁慈建设工程有限公司以97028327元中标慈溪市城市生活垃圾收转运一体化建设项目(一期)
