前言
今年疫情的突袭,改变了很多人以往在生活和工作中的方式,视频会议、协同编辑、在线直播 / 教育等业务场景凸显重要性。人们通过线上方式,实时的获取信息、同步信息,以快捷且不受空间限制的形式完成沟通、学习、工作等需求。
本文将以微信小程序实时弹幕功能为例,向大家介绍高实时业务场景的功能技术实现过程。
实时弹幕功能的技术实现
实现方式对比
短轮询
短轮询是客户端每隔一段时间向服务器发出请求,服务器端在收到请求后,不论是否有数据更新,都直接进行响应。
- 优点:实现简单,易于理解,适合异步查询业务。
- 缺点:不断的去请求没有意义的更新的数据,浪费服务器资源,不适合同时在线用户多的业务。
长轮询
当服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。如果有更新,则进行响应,如果一直没有数据,则到达一定的时间限制才返回。
- 优点:减少不必要的请求,减少资源浪费,有较好的时效性。
- 缺点:占较多的内存资源与请求数。
Server-sent Events(SSE)
SSE 允许服务器推送数据到客户端,不需要建立或保持大量的客户端发往服务器端的请求,可以实现只要服务器端数据有更新,就马上发送到客户端。
- 优点:实现简单,一个连接可以发送多个数据,节约了很多资源。 <