1. WebSocket协议是 :
基于TCP
的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——可以通俗的解释为服务器主动发送信息给客户端.
2. 区别于MQTT
、XMPP
等聊天的应用层协议:
它是一个传输通讯协议。它有着自己一套连接握手,以及数据传输的规范
3 SRWebSocket
就是iOS中使用websocket
必用的一个框架.
4 SRWebSocket的对外的业务流程: SRWebSocket
的API调用代码
- (void)connectServer ,
didReceiveMessage,webSocketDidOpen,
didFailWithError ,
didCloseWithCode
5 初始化数据
- 包括对schem进行断言,只支持ws/wss/http/https四种。
- 当前socket状态,是正在连接,还是已连接、断开等等。
- 初始化工作队列,以及流回调线程等等。
- 初始化读写缓冲区:
_readBuffer
、_outputBuffer
6 输入输出流的创建及绑定:在这里,我们根据传进来的url,类似ws://localhost:80
,进行输入输出流CFStream的创建及绑定,到这里,初始化工作就完成了,接着我们调用了open
开始建立连接
7 open方法定义了一个超时,如果超时了还在SR_CONNECTING
,则报错,并且断开连接,清除一些已经初始化好的参数。