一、长连接在iOS开发中的作用
一般的App的网络请求都是基于Http1.0进行的,使用的是NSURLConnection、NSURLSession或者是AFNetworking,Http1.0链接最显著的特点就是客户端每一次需要主动向服务端发送请求,都需要经历建立链接、发送请求、返回数据、关闭链接这几个阶段,是一种单向请求且无状态的协议。而有的时候,我们需要服务端主动往客户端进行推送服务的时候,这个时候长连接就起作用了。苹果提供的push服务apns就是典型的长连接的应用,IM应用、订单推送这些也是长连接的典型应用。长连接的特点是一旦通过三次握手建立链接之后,该条链路就一直存在,而且该链路是一种双向的通行机制,适合于频繁的网络请求,避免Http每一次请求都会建立链接和关闭链接的操作,减少浪费,提高效率。
二、通信网络的一些基本概念
长连接的一般实现方式都是基于TCP或者UDP协议完成的。这个时候我们就需要一些基本的通信网络概念。
http://www.cocoachina.com/ios/20180228/22385.html --iOS中长连接的那些事
https://cainluo.github.io/14986613643920.html --玩转iOS开发:iOS中的Socket编程(一)
https://www.jianshu.com/p/2dbb360886a8 --iOS即时通讯,从入门到“放弃”?