β

iOS网络长连接与短连接

ksnowlv 390 阅读

长连接

client与server先建立连接,连接建立后不断开,操持连接,然后进行数据的发送和接收。
由于这种形式的网络通讯方式,网络连接一直存在。
常用于P2P(点对点)通信。像IM类的产品

短连接

client与server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。
此方式常用于一点对多点通讯。C/S通信。 

长连接有两种:

1. 基于socket的网络通讯。

a.要对通讯协议格式,包括消息头,数据包头等特别清楚,可以实现同步异步机制,可以向客户端推送消息。

b.更少的建立和关闭tcp连接,可以减少网络延时和开销。 在使用https连接时更显著。可以减少多次建立高消耗的SSL/TLS握手

c.实现socket对各种不同类型的网络的穿透,才是真正的麻烦,在某些省份或地区是无法实现网络穿透的。

2.基于http的网络通讯

a.例如spdy协议,iOS8中,系统网络接口提供了对spdy的支持。

b.即使是长连接,http也需要client先发起请求( 除了spdy协议,spdy协议支持服务端推送 )。在实际应用中有一些限制。

总体为说,长连接的优点

.通过开启、关闭更少的TCP连接,节约CPU时间和内存. 
.通过减少TCP开启引起的包的数目,降低网络阻塞.

缺点

消耗服务器和客户端资源,像电量,网络流量等    

在保持长连时,需要发送一些心跳包.在iOS/android移动终端中,

短连接

多用于操作频繁、点对点的通讯,且连接数不是太多的情况,应用较为普遍。

参考资料: 试试把APP心跳的前因后果解释更简单明白? 透视互联网APP的心跳机制 Android/iOS Notification feature

作者:ksnowlv
原文地址:iOS网络长连接与短连接, 感谢原作者分享。

发表评论