一,第三方框架介紹
在app開發過程中用的最多的是http/https(其實是用tcp/IP實現的),大部分功能是獲取數據,顯示數據,用戶主動請求的一對一模式,服務器不能主動的向app發送數據。tcp/IP是面向鏈接,穩定,數據流(無邊界)的,后面我們會根據這些特性來編寫代碼。常用的第三方框架有2種,一種基于NSRunloop,一種基于GCD,后面說的都是用基于NSRunloop的CocoaAsyncSocket.https://github.com/robbiehanson/CocoaAsyncSocket
二,項目中使用的接口及協議回調
項目中要用的的APi
1,- (id)initWithDelegate:(id)delegate;初始化并設置委托
2,- (BOOL)connectToHost:(NSString*)hostname onPort:(UInt16)port error:(NSError**)errPtr;根據ip及端口鏈接服務器;
3,- (void)writeData:(NSData*)data withTimeout:(NSTimeInterval)timeout tag:(long)tag;發送數據;
4,- (void)disconnect;斷開鏈接;
上面提到了設置委托,要實現以下委托方法
1,- (void)onSocket:(AsyncSocket*)sock didConnectToHost:(NSString*)host port:(UInt16)port;建立連接成功后回調;
2,-(void) onSocket:(AsyncSocket*)socket willDisconnectWithError:(NSError*)err;連接斷開后回調;
3,-(void) onSocket:(AsyncSocket*)sock didReadData:(NSData*)data withTag:(long)tag;接收數據回調;
三,CocoaAsyncSocket的使用方法
1.將下載好的三方RunLoop文件夾下的AsyncSocket.h, AsyncSocket.m, AsyncUdpSocket.h, AsyncUdpSocket.m 文件拷貝到自己的project中,添加CFNetwork.framework. (當然了,你也可以自己用Cocoapods進行配置,只要你開心就好.)
2.先繼承于NSObject創建個單例,命名為Singleton
3.運用懶加載創建AsyncSocket
4.通訊協議每個公司都不一樣,在這我就不一一舉例了。
具體想實現什么功能就去上面查找具體方法即可。
附上接收數據