如何設定AnyChat的P2P連線策略

2022-08-05 11:30:12 字數 1491 閱讀 6611

自anychat platform core sdk v2.8.6版本開始,anychat sdk向上層應用開放了核心的p2p連線策略,可以讓應用程式來干預核心的p2p連線,以滿足各種場合下的應用需求。

設定p2p連線策略的典型**如下:

1.dworddwp2ppolitic = 3;

2.brac_setsdkoption(brac_so_network_p2ppolitic,(constchar*)&dwp2ppolitic,sizeof(dword));

目前開放的p2p連線策略包含如下值:

p2p連線建立成功,或是斷時,會通過

p2p狀態變化訊息

通知上層應用。

由於每個客戶端的p2p連線資源是有限的(每個客戶端最多可與30個使用者建立p2p連線),所以不同的應用環境,需要設定不同的p2p連線策略。

anychat sdk預設是“伺服器控制p2p”策略,使用者進入房間後,將主動與房間內的所有使用者建立p2p,該模式適用於同一個房間不超過50個使用者(考慮到與部分客戶端的p2p連線可能建立不成功)的應用,如果同一個房間的使用者數較多,建議上層應用使用“上層應用控制p2p連線”或是“按需建立p2p連線”模式,使得客戶端可以與需要的使用者建立p2p,而不至於出現p2p連線資源被無關的使用者佔用的情況。

在所有p2p連線策略中,最優的策略是“按需建立p2p連線”,但沒有將其作為sdk的預設p2p連線策略,主要是該策略是新增,而為了相容老版本的sdk,便將“伺服器控制p2p”策略設定為預設連線策略。

當設定為“上層應用控制p2p連線”之後,便可以通過sdk提供的介面主動與指定的使用者建立p2p連線,典型**如下:

1.dworddwtargetuserid = 100;

2.brac_setsdkoption(brac_so_network_p2pconnect,(constchar*)&dwtargetuserid,sizeof(dword));

我們建議一個應用平臺上,均採用相同的p2p連線策略,否則可能出現特殊情況,例如:a使用者採用“上層應用控制p2p連線”策略,b使用者採用“伺服器控制p2p”策略,兩個使用者進入房間後,雖然上層應用沒有向a使用者下達與b使用者建立p2p連線的請求,但實際上a、b兩使用者之間仍然會建立p2p連線,因為b使用者會主動與a使用者建立連線。

P2P網路“自由”穿越NAT的“祕密”原理

nat是為了節省ip地址而設計的,但它隱藏了內網機器的地址, 意外 起到了安全的作用,由於客戶端是主動登入p2p網路才可穿越,所以p2p的方式也沒有違背企業的內部管理原則 穿越nat的意義 nat是為了節省ip地址而設計的,但它隱藏了內網機器的地址, 意外 起到了安全的作用。對外不可見,不透明的內部...

實現P2P遠端控制專案的基本邏輯

以下討論是基於 vnc成熟技術 ipv4需要內網穿透 的基礎上討論的,如果需要連遠端控制本身功能都自行實現的話,則需要補充各個終端系統的系統...

使用C 開發一個簡單的P2P應用

使用c 開發一個簡單的p2p應用 by oraige 發表於 2005 12 25 12 18 00 c 語言由於其對網路功能良好的支援,特...