一、定义
- 短连接:基于 Http 层次的链接,在数据传输完成之后会断开连接
- 持久连接:Http 的 keep-alive 机制,在时间到期之后,会关闭连接
- 长连接:TCP 层次的链接,数据传输完成之后,不会断开连接
二、区别和适用场景
短连接通信一次之后,链接就会关闭,适用于下场景:
- 低频 Api:登录
- 安全敏感的 Api
持久连接通过使用 Keep-alive,复用 Tcp 连接,减少了 Tcp 创建的耗时。连接存活的时间较短,适用于以下场景:
- 高频 Api:列表分页,下拉刷新
- 多路复用的情况
Tcp 长连接是通信完成之后,不断开链接,适用的场景如下:
- IM
- 股票交易
三、长连接心跳策略
为什么长连接需要进行心跳?
- 保活(防止被 Nat 回收)
- 连接断开,则业务逻辑不再执行
心跳策略:
- 长连接逻辑单独提取到了一个独立的进程
- 心跳