初识长连接

  在介绍长连接前,我们先来聊下轮询,轮询是处理数据更新最常用的方式之一,简单来说就是客户端不停的向服务器发送请求以获取最新的数据信息,轮询的优点是后端编码简单,缺点是大部分请求都是在做无用功,浪费带宽和服务器资源,所以轮询适合小型应用。针对大型应用,尤其是并发达到几十万甚至上百万级别的,此时用轮询方式会对前后端的性能产生一定的影响,例如某些数据是运营人员在后台实时配置的,可能隔很长时间才会更新一条数据,此时本地轮询其实造成了很大的资源浪费。

  接下来我们正式介绍长连接,所谓长连接,就是要在客户端与服务器之间创建和保持稳定可靠的连接,它通常包含以下几个关键过程:长连接的建立,数据的推送,长连接的断开。前端进入相关业务场景,会向长连接服务后台发起建立长连接的请求,长连接建立成功后,长连接服务后台会根据需要推送消息至长连接SDK,SDK对收到的数据进行数据转换,随后再给到前端,最后前端进行展示。目前市面上有很多家厂商提供长连接推送服务,我在实际开发中用的是自家的长连接服务(以SDK的形式提供给业务端)。

  长连接虽然能很大程度上解决因频繁请求网络引起的性能问题,以较小的消耗完成数据的更新,但也并非完美,针对不同的业务场景需考虑到长连接保活率和消息到达率以及随之产生的影响。