音视频互动平台--P2P通信技术
壓縮包可以從這里獲得:http://anychat.storage.aliyun.com/AnyChatCoreSDK_Win32(MBCS)_V4.5.zip
下載后,首先將其解壓到一個(gè)臨時(shí)文件夾中,然后開始后續(xù)工作。
?
編譯后我們獲得的是.lib文件。
?
??????? AnyChat SDK向上層應(yīng)用開放了內(nèi)核的P2P連接策略,可以讓應(yīng)用程序來干預(yù)內(nèi)核的P2P連接,以滿足各種場合下的應(yīng)用需求。
?
設(shè)置P2P連接策略的典型代碼如下:
1.DWORD dwP2PPolitic = 3;
2.BRAC_SetSDKOption(BRAC_SO_NETWORK_P2PPOLITIC,(const char*)&dwP2PPolitic,sizeof(DWORD));
目前開放的P2P連接策略包含如下值:
- 0 禁止P2P連接,不主動與其它用戶建立P2P連接,也不接受其它用戶發(fā)起的P2P連接請求;
- 1 服務(wù)器控制P2P[默認(rèn)],自動與當(dāng)前房間內(nèi)的所有用戶建立P2P;
- 2 上層應(yīng)用控制P2P連接,不主動與其它用戶建立P2P連接,但可接受其它用戶發(fā)起的P2P連接請求,但應(yīng)用程序可以下達(dá)與指定用戶建立P2P連接的指令,收到上層應(yīng)用的指令后,再嘗試與該用戶建立P2P連接;
- 3 按需建立P2P連接,在需要建立P2P連接時(shí)(如請求對方的音頻、視頻數(shù)據(jù)),便自動嘗試與該用戶建立P2P連接,也自動接受其它用戶的P2P連接請求;
?
P2P連接建立成功,或是斷時(shí),會通過P2P狀態(tài)變化消息通知上層應(yīng)用。
?
由于每個(gè)客戶端的P2P連接資源是有限的(每個(gè)客戶端最多可與30個(gè)用戶建立P2P連接),所以不同的應(yīng)用環(huán)境,需要設(shè)置不同的P2P連接策略。
?
AnyChat SDK默認(rèn)是“服務(wù)器控制P2P”策略,用戶進(jìn)入房間后,將主動與房間內(nèi)的所有用戶建立P2P,該模式適用于同一個(gè)房間不超過50個(gè)用戶(考慮到與部分客戶端的P2P連接可能建立不成功)的應(yīng)用,如果同一個(gè)房間的用戶數(shù)較多,建議上層應(yīng)用使用“上層應(yīng)用控制P2P連接”或是“按需建立P2P連接”模式,使得客戶端可以與需要的用戶建立P2P,而不至于出現(xiàn)P2P連接資源被無關(guān)的用戶占用的情況。
?P2P連接策略可以初始化成功之后動態(tài)調(diào)整,但只有“禁止P2P連接”模式被設(shè)置后,會斷開與其它用戶的P2P連接,設(shè)置其它的模式,均不會斷開現(xiàn)有P2P連接。當(dāng)客戶端設(shè)置為“禁止P2P連接”策略后,所有的音頻、視頻數(shù)據(jù)(包括自己傳給其它用戶,其它用戶傳給自己)都將通過服務(wù)器中轉(zhuǎn),可適用于某些特殊的應(yīng)用場合。
?
在所有P2P連接策略中,最優(yōu)的策略是“按需建立P2P連接”,但沒有將其作為SDK的默認(rèn)P2P連接策略,主要是該策略是新增,而為了兼容老版本的SDK,便將“服務(wù)器控制P2P”策略設(shè)置為默認(rèn)連接策略。
?
當(dāng)設(shè)置為“上層應(yīng)用控制P2P連接”之后,便可以通過SDK提供的接口主動與指定的用戶建立P2P連接,典型代碼如下:
1.DWORD dwTargetUserId = 100;
?
?2.BRAC_SetSDKOption(BRAC_SO_NETWORK_P2PCONNECT,(const char*)&dwTargetUserId,sizeof(DWORD));
?
?
我們建議一個(gè)應(yīng)用平臺上,均采用相同的P2P連接策略,否則可能出現(xiàn)特殊情況,例如:A用
戶采用“上層應(yīng)用控制P2P連接”策略,B用戶采用“服務(wù)器控制P2P”策略,兩個(gè)用戶進(jìn)入房間后,雖然上層應(yīng)用沒有向A用戶下達(dá)與B用戶建立P2P連接的請求,但實(shí)際上A、B兩用戶之間仍然會建立P2P連接,因?yàn)锽用戶會主動與A用戶建立連接。
?
注:上述所有“建立P2P連接”并不代表P2P連接一定能建立成功,這與實(shí)際的網(wǎng)絡(luò)狀態(tài)相關(guān),只是表示“嘗試與對方建立P2P連接”。
?
總結(jié)
以上是生活随笔為你收集整理的音视频互动平台--P2P通信技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS中关于MBProgressHUD的
- 下一篇: 一个学中医女生的保养身体法