一、概述
TUTK P2P SDK 中,會(huì)話(huà)(Session)是設(shè)備端與 APP 端建立的 P2P 連接載體,通道(Channel)是會(huì)話(huà)下具體可操作的容器。一個(gè)會(huì)話(huà)可包含多個(gè)不同類(lèi)型的通道,各通道負(fù)責(zé)特定數(shù)據(jù)傳輸(如音視頻、文件、控制指令),底層依賴(lài) IOTC 通道實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)。
二、會(huì)話(huà)(Session)
會(huì)話(huà)是設(shè)備端與 APP 端通過(guò) P2P 建立的邏輯連接實(shí)例,是所有數(shù)據(jù)傳輸?shù)幕A(chǔ)容器,具備以下核心特性:
- 每個(gè)會(huì)話(huà)對(duì)應(yīng)唯一的會(huì)話(huà)ID(SID),用于標(biāo)識(shí)設(shè)備與 APP 的唯一連接;
- 會(huì)話(huà)建立過(guò)程包含身份認(rèn)證、NAT 穿透、P2P 隧道創(chuàng)建等步驟,建立成功后保持連接狀態(tài);
- 會(huì)話(huà)是通道的父容器,一個(gè)會(huì)話(huà)可承載多個(gè)不同類(lèi)型的通道(如同時(shí)創(chuàng)建 AV 通道傳輸音視頻、RDT 通道傳輸文件);
- 會(huì)話(huà)生命周期覆蓋從連接建立到斷開(kāi)的全過(guò)程,會(huì)話(huà)斷開(kāi)前需要銷(xiāo)毀此連接下所有的AV或者RDT通道。

圖 1:會(huì)話(huà)(Session)核心概念示意圖
三、會(huì)話(huà)和通道(Session & Channel)
通道是會(huì)話(huà)下的具體可操作的容器,用于隔離不同類(lèi)型的數(shù)據(jù)傳輸,避免相互干擾。SDK 中常見(jiàn)的通道類(lèi)型及用途如下:
3.1 常見(jiàn)通道類(lèi)型
- IOTC 通道:最底層的基礎(chǔ)通道,負(fù)責(zé) P2P 數(shù)據(jù)的底層轉(zhuǎn)發(fā),是所有上層通道的依賴(lài);
- AV 通道:用于音視頻數(shù)據(jù)傳輸(如雙向視頻通話(huà)、實(shí)時(shí)監(jiān)控),支持全雙工傳輸(SDK v3.3+);
- RDT 通道:用于可靠文件傳輸(如圖片、視頻文件下載/上傳),提供數(shù)據(jù)校驗(yàn)和重傳機(jī)制。
3.2 會(huì)話(huà)與 AV 通道的關(guān)系(示例)
以最常用的 AV 通道為例,會(huì)話(huà)與通道的層級(jí)關(guān)系如下:
- 會(huì)話(huà)是頂層容器,先通過(guò)
IOTC_Connect_ByUID等接口建立會(huì)話(huà); - 會(huì)話(huà)建立后,通過(guò)
avClientStartEx(APP 端)或avServStartEx(設(shè)備端)創(chuàng)建 AV 通道,每個(gè) AV 通道綁定到特定會(huì)話(huà); - 一個(gè)會(huì)話(huà)可創(chuàng)建多個(gè) AV 通道(如NVR多通道,或者文件上傳下載),但需確保通道 ID 不沖突;

圖 2:會(huì)話(huà)與 AV 通道的層級(jí)關(guān)系示意圖
四、通道之間的關(guān)系
上層通道(AV 通道、RDT 通道)與底層 IOTC 通道為一對(duì)一映射關(guān)系,即每個(gè)上層功能通道都會(huì)占用一個(gè)獨(dú)立的 IOTC 通道用于數(shù)據(jù)傳輸。
4.1 AV 通道與 IOTC 通道的映射關(guān)系
AV 通道的創(chuàng)建過(guò)程會(huì)自動(dòng)申請(qǐng)并綁定一個(gè) IOTC 通道,這種映射關(guān)系可在
avClientStartEx(APP 端)和 avServStartEx(設(shè)備端)接口的實(shí)現(xiàn)邏輯中體現(xiàn):- 調(diào)用上層通道創(chuàng)建接口時(shí),需傳入會(huì)話(huà) ID(SID)和要使用的IOTC通道,SDK 會(huì)生成一個(gè)AV通道,用以數(shù)據(jù)傳輸;
- 上層通道的所有數(shù)據(jù)(如視頻幀、音頻數(shù)據(jù))都會(huì)通過(guò)綁定的 IOTC 通道進(jìn)行 P2P 轉(zhuǎn)發(fā);
- 上層通道銷(xiāo)毀時(shí)(如
avClientStop),對(duì)應(yīng)的 IOTC 通道會(huì)被自動(dòng)釋放,避免資源泄漏。

圖 3:AV 通道與 IOTC 通道的一對(duì)一映射關(guān)系示意圖
4.2 RDT 通道與其他通道的關(guān)系
RDT 通道的底層實(shí)現(xiàn)邏輯與 AV 通道一致,其與會(huì)話(huà)、IOTC 通道的關(guān)系可直接參考 AV 通道的規(guī)則:
- 一個(gè) RDT 通道對(duì)應(yīng)一個(gè)獨(dú)立的 IOTC 通道;
- RDT 通道需基于已建立的會(huì)話(huà)創(chuàng)建,通過(guò)會(huì)話(huà) ID 關(guān)聯(lián)到底層 P2P 隧道;
- 同一會(huì)話(huà)中可同時(shí)存在 AV 通道和 RDT 通道,兩者占用不同的 IOTC 通道,數(shù)據(jù)傳輸互不干擾。
