**1.2.1、透明通道傳數據的功能作用**
AnyChat具有緩沖區功能,可以實現客戶端與客戶端之間的緩沖區功能,也可以實現客戶端與服務器之間的緩沖區功能。
AnyChat客戶端之間的緩沖區通道接口有:
(1)透明通道API接口:BRAC_TransBuffer
(2)透明通道擴展API接口:BRAC_TransBufferEx
AnyChat客戶端與服務器之間的緩沖區通道接口有:
(1)透明通道API接口:BRAC_TransBuffer
(2)透明通道擴展API接口:BRAC_TransBufferEx
(3)SDK Filter Data API接口:BRAS_SendBufToUser,BRAS_SendBufToRoom
**1.2.2、客戶端之間使用透明通道傳輸數據**
A、B兩用戶登錄服務器成功之后,便可使用透明通道API接口傳輸數據,當A使用API接口:BRAC_TransBuffer向B發送數據時,B收到數據后,將觸發B的回調函數:透明通道數據回調函數(參考:BRAC_SetTransBufferCallBack)。
內核使用TCP通道傳輸,保證接收方收到的順序與發送的順序相同,且保證數據可達,不會丟包;
**1.2.3、客戶端之間使用透明通道擴展傳輸數據**
A、B兩用戶登錄服務器成功之后,便可使用透明通道擴展API接口傳輸數據,當A使用API接口:BRAC_TransBufferEx向B發送數據時,B收到數據后,將觸發B的回調函數:透明通道數據擴展回調函數(參考:BRAC_SetTransBufferExCallBack)。
**1.2.4、客戶端與服務器之間傳輸緩沖區數據(SDK Filter Data接口)**
客戶端A登錄服務器成功之后,便可使用SDK Filter Data接口傳輸數據
(1)、當客戶端使用API接口:BRAC_SendSDKFilterData向服務器發送數據時,將觸發服務器的回調函數:上層業務自定義數據回調函數定義(參考: BRAS_SetOnRecvUserFilterDataCallBack)
(2)、當服務器使用API接口:BRAS_SendBufToUser、BRAS_SendBufToRoom向客戶端發送數據時,將觸發客戶端的回調函數:SDK Filter通信數據回調函數(參考:BRAC_SetSDKFilterDataCallBack)
內核使用TCP通道傳輸,保證接收方收到的順序與發送的順序相同,且保證數據可達,不會丟包;
**1.2.5、客戶端與服務器之間傳輸緩沖區數據(透明通道接口)**
客戶端A登錄服務器成功之后,便可使用透明通道接口與服務器傳輸數據
(1)、當客戶端使用API接口:BRAC_TransBuffer向服務器發送數據時,將觸發服務器的回調函數:透明通道數據回調函數(參考:BRAS_SetTransBufferCallBack)
(2)、當服務器使用API接口:BRAS_TransBuffer向客戶端發送數據時,將觸發客戶端的回調函數:透明通道數據回調函數;
內核使用TCP通道傳輸,保證接收方收到的順序與發送的順序相同,且保證數據可達,不會丟包;
**(注:SDK Filter Data接口和透明通道接口效率相同,透明通道接口主要是為了兼容客戶端API而設計的,為V4.1版本服務器新增接口,需要注意的是兩者所對應的回調函數是不同的)**
**1.2.6、客戶端與服務器之間使用擴展緩沖區通道傳輸數據**
客戶端A登錄服務器成功之后,便可使用擴展緩沖區通道與服務器傳輸數據
(1)當客戶端使用API接口:BRAC_TransBufferEx向服務器發送數據時,將觸發服務器的回調函數:透明通道數據擴展回調函數(參考: BRAS_SetTransBufferExCallBack)
(2)當服務器使用API接口:BRAS_TransBufferEx向客戶端發送數據時,客戶端收到數據后,將觸發客戶端的回調函數:透明通道數據擴展回調函數(參考:BRAC_SetTransBufferExCallBack)。
內核使用UDP通道傳輸,不保證接收方收到的順序與發送順序相同,但是保證數據可達,丟包自動重傳;
**注:上文所提及的“服務器”是指采用AnyChat Server SDK所開發的業務層服務器。**