一议薪,第三方框架介紹
在app開發(fā)過(guò)程中用的最多的是http/https(其實(shí)是用tcp/IP實(shí)現(xiàn)的)罐孝,大部分功能是獲取數(shù)據(jù)陵叽,顯示數(shù)據(jù),用戶主動(dòng)請(qǐng)求的一對(duì)一模式丛版,服務(wù)器不能主動(dòng)的向app發(fā)送數(shù)據(jù)巩掺。tcp/IP是面向鏈接,穩(wěn)定页畦,數(shù)據(jù)流(無(wú)邊界)的胖替,后面我們會(huì)根據(jù)這些特性來(lái)編寫代碼。常用的第三方框架有2種豫缨,一種基于NSRunloop独令,一種基于GCD,后面說(shuō)的都是用基于NSRunloop的CocoaAsyncSocket.https://github.com/robbiehanson/CocoaAsyncSocket
二好芭,項(xiàng)目中使用的接口及協(xié)議回調(diào)
項(xiàng)目中要用的的APi
1燃箭,- (id)initWithDelegate:(id)delegate;初始化并設(shè)置委托
2舍败,- (BOOL)connectToHost:(NSString*)hostname onPort:(UInt16)port error:(NSError**)errPtr招狸;根據(jù)ip及端口鏈接服務(wù)器;
3瓤湘,- (void)writeData:(NSData*)data withTimeout:(NSTimeInterval)timeout tag:(long)tag瓢颅;發(fā)送數(shù)據(jù);
4弛说,- (void)disconnect挽懦;斷開鏈接;
上面提到了設(shè)置委托木人,要實(shí)現(xiàn)以下委托方法
1信柿,- (void)onSocket:(AsyncSocket*)sock didConnectToHost:(NSString*)host port:(UInt16)port;建立連接成功后回調(diào)醒第;
2渔嚷,-(void) onSocket:(AsyncSocket*)socket willDisconnectWithError:(NSError*)err;連接斷開后回調(diào)稠曼;
3形病,-(void) onSocket:(AsyncSocket*)sock didReadData:(NSData*)data withTag:(long)tag;接收數(shù)據(jù)回調(diào)霞幅;
三漠吻,CocoaAsyncSocket的使用方法
1.將下載好的三方RunLoop文件夾下的AsyncSocket.h, AsyncSocket.m, AsyncUdpSocket.h, AsyncUdpSocket.m 文件拷貝到自己的project中,添加CFNetwork.framework. (當(dāng)然了司恳,你也可以自己用Cocoapods進(jìn)行配置途乃,只要你開心就好.)
2.先繼承于NSObject創(chuàng)建個(gè)單例,命名為Singleton
3.運(yùn)用懶加載創(chuàng)建AsyncSocket
4.通訊協(xié)議每個(gè)公司都不一樣扔傅,在這我就不一一舉例了耍共。
具體想實(shí)現(xiàn)什么功能就去上面查找具體方法即可烫饼。
附上接收數(shù)據(jù)