系统设计 | Long-Polling vs WebSockets vs Server-Sent Events

技术背景和目标

  • 一个背景是基于http技术的web应用,服务器是被动发送数据,前提是客户端必须发送请求。浏览器并不知道服务端的信息何时会改变,为了模拟实时的信息交流,只能通过polling(轮询)技术不断刷新页面去获取数据;

  • 目标是web应用数据通信的尽量保证高效性,实时性以及安全性

场景

web通信,浏览器和服务端的通信,思想也可以借鉴到任何系统通信中;

  • long-polling:comet使用该技术,其他pull模式的消息系统也用到该技术做优化;
  • WebSocket是HTML5出的协议,基于HTTP协议的一个持久化的协议。只需要建立一次HTTP连接,服务端会一直知道客户端的信息,主动推送信息给客户端。特定浏览器支持,适合高并发web场景。

优缺点

  • long-polling:具有记忆功能的pull;优点:pull方式的优化,减少了不必要的空请求;缺点:客户端不好配置超时时间,如果配置需要和服务端协调?

polling需具备终止功能:如果客户端timeout内,未收到resp;客户端主动发起终止polling的请求,服务端收到终止请求后需要终止数据准备流程;

  • 问题是polling终止也需要考虑服务端是否收到polling请求,若没收到,那么过一段时间仍然会把上次的计算结果推送
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值