在釋放資源時,爲什麼有時會比較慢?

在釋放SDK的資源(BRAC_LogoutBRAC_Release)時,有時會比較慢通常是由於開啓了SDK的UPnP設備支持(參考:BRAC_InitSDK),由於關閉在UPnP設備上打開的端口需要一定的時間,就造成了SDK釋放資源的時間增加。

 

操作UPnP設備通常會分爲三個步驟,在初始化SDK時進行(1)發現UPnP設備和(2)打開uPnP端口,在釋放SDK資源時則進行(3)關閉UPnP端口的操作,在進行前兩步操作時,SDK內部會進行異步處理(開啓獨立的線程進行處理),所以不會阻塞主線程,上層應用不會感覺到卡,而釋放SDK資源時,就沒辦法進行異步處理,必須等待UPnP端口關閉後才能結束,所以上層應用會感覺“卡”一下。

 

通常不同的網絡路由設備上面進行UPnP操作的時間也不相同,最快的只需要幾十毫秒,較慢的會需要幾百毫秒,如果用戶的網絡路由器支持UPnP協議,而且開啓了SDK的UPnP設備支持,則用戶之間P2P穿透的成功率將會得到極大的提高。

 

當用戶的網絡裏面沒有UPnP設備,或是關閉了SDK的UPnP設備支持時,SDK會採用其它的策略來嘗試P2P的穿透。

發佈了27 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章