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

本文介绍了实时Web应用的技术背景和目标,重点比较了Long-Polling、WebSocket和Server-Sent Events(SSE)的优缺点。Long-Polling作为polling的优化,减少了不必要的请求,但需要处理超时和终止请求的问题。WebSocket提供持久连接,实现双向通信,适用于高并发场景,但复杂度较高。SSE则是纯推送方式,实时性最佳,但可能面临事件丢失的情况。文章还探讨了这些技术的核心思想和底层原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

技术背景和目标

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

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

场景

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

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

优缺点

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

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

  • 问题是polling终止也需要考虑服务端是否收到polling请求,若没收到,那么过一段时间仍然会把上次的计算结果推送
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值