Android APP开发实战:从规划到上线全程详解
上QQ阅读APP看书,第一时间看更新

6.4 短连接与长连接

6.4.1 短连接

短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一次数据交互。

短连接的操作步骤:连接→数据传输→关闭连接。

6.4.2 长连接

长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务器端的连接状态,且在一个连接上可以连续发送多个数据包。在连接保持期间,如果没有数据包发送,需要双方发链路检测包,以维持此连接。

长连接的操作步骤:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接。

在HTTP 1.1中默认为保持长连接(Persistent Connection,也称为持久连接),数据传输完成后保持TCP连接不断开,等待在同域名下继续用这个通道传输数据。

长连接也可以使用Socket或WebSocket实现。

6.4.3 使用场景

1.短连接

短连接用于并发量大,而每个用户无需频繁操作的情况,如Web网站的HTTP服务。

因为长连接对于服务器端来说会耗费一定的资源,像Web网站这么频繁的有成千上万甚至上亿客户端的连接,如果用长连接,每个用户都占用一个连接的话,那将极其耗费资源;而用短连接则会省一些资源。

2.长连接

长连接则多用于操作频繁、点对点的通信,如PUSH和IM等功能。

每个TCP连接都需要三步握手,这需要时间,如果每个操作都是短连接,再次操作的话还需重新建立连接,那么PUSH或IM功能的响应速度会降低很多,所以每个操作完成后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。