標籤:cocos2dx cocos socket 切換網路 重連
原創文章,歡迎轉載,轉載請註明:文章來自[寒江孤葉丶的Cocos2d-x之旅系列]
部落格地址:http://blog.csdn.net/qq446569365
用於監聽IOS網路狀態切換(WIFI和移動蜂窩網路)有什麼作用
在Socket網路遊戲中,經常會用到BSDSocket。使用者切換網路狀態時,Socket連結會斷開,如果通過Receive的傳回值來判斷網路是否斷開,需要等待很長時間(4-20s)
這個時候就需要監聽IOS網路狀態切換,當發現使用者切換網路狀態時,直接重連Socket。
如何在Cocos中使用
首先將NetworkInfo.h 和 NetworkInfo.m匯入項目
NetworkInfo的Github地址
然後修改AppController.mm檔案
首先引用剛剛匯入的兩個檔案#import "NetworkInfo.h"
接下來在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions函數中加入如下代碼(註冊監聽)
代碼如下
//開啟網路狀況的監聽 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];NetworkInfo* hostReach = [NetworkInfo reachabilityWithHostName:@"www.baidu.com"] ;//網址可以修改一個連線速度較快的[hostReach startNotifier]; //開始監聽,會啟動一個run loop
並且在檔案中中加入網路狀態切換的回調方法
代碼如下
//網路連結改變時會調用的方法 -(void)reachabilityChanged:(NSNotification *)note{ NetworkInfo *currReach = [note object]; NSParameterAssert([currReach isKindOfClass:[NetworkInfo class]]); //TODO:重連網路}
最後在項目中加入庫檔案:SystemConfiguration.framework
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
[寒江孤葉丶的Cocos2d-x之旅_34]ODSocket(BSDSocket)如何在切換網路狀態時自動重連