[寒江孤葉丶的Cocos2d-x之旅_34]ODSocket(BSDSocket)如何在切換網路狀態時自動重連

來源:互聯網
上載者:User

標籤: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)如何在切換網路狀態時自動重連

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.