视频开发技术之文件传输
AnyChat具有缓冲区及文件传输功能,可以实现客户端与客户端之间的缓冲区和文件传输,也可以实现客户端与服务器之间的缓冲区和文件传输功能(V4.1版本新增功能)。
AnyChat客户端之间的缓冲区及文件传输通道有:
1、透明通道API接口:BRAC_TransBuffer;
2、透明通道扩展API接口:BRAC_TransBufferEx;
3、文件传输API接口:BRAC_TransFile;
AnyChat客户端与服务器之间的缓冲区及文件传输通道有:
1、SDK Filter Data API接口:BRAC_SendSDKFilterData、BRAS_SendBufToUser、BRAS_SendBufToRoom;
2、透明通道API接口:BRAC_TransBuffer、BRAS_TransBuffer;
3、透明通道扩展API接口:BRAC_TransBufferEx、BRAS_TransBufferEx;
4、文件传输API接口:BRAC_TransFile、BRAS_TransFile;
一、客户端之间使用透明通道传输数据
A、B两用户登录服务器成功之后,便可使用透明通道API接口传输数据,当A使用API接口:BRAC_TransBuffer向B发送数据时,B收到数据后,将触发B的回调函数:透明通道数据回调函数(参考:BRAC_SetTransBufferCallBack)。
内核使用TCP通道传输,保证接收方收到的顺序与发送的顺序相同,且保证数据可达,不会丢包;
二、客户端之间使用透明通道扩展传输数据
A、B两用户登录服务器成功之后,便可使用透明通道扩展API接口传输数据,当A使用API接口:BRAC_TransBufferEx向B发送数据时,B收到数据后,将触发B的回调函数:透明通道数据扩展回调函数(参考:BRAC_SetTransBufferExCallBack)。
内核使用UDP通道传输,不保证接收方收到的顺序与发送顺序相同,但是保证数据可达,丢包自动重传;
三、客户端之间传输文件
A、B两用户登录服务器成功之后,便可使用文件传输API接口传送文件,当A使用API接口:BRAC_TransFile向B发送文件时,B收到文件后,将触发B的回调函数:文件传输回调函数(参考:BRAC_SetTransFileCallBack)
内核使用UDP通道传输,不保证接收方收到的顺序与发送顺序相同,但是保证数据可达,丢包自动重传;
四、客户端与服务器之间传输缓冲区数据(SDK Filter Data接口)
客户端A登录服务器成功之后,便可使用SDK Filter Data接口传输数据
1、当客户端使用API接口:BRAC_SendSDKFilterData向服务器发送数据时,将触发服务器的回调函数:上层业务自定义数据回调函数定义(参考: BRAS_SetOnRecvUserFilterDataCallBack)
2、当服务器使用API接口:BRAS_SendBufToUser、BRAS_SendBufToRoom向客户端发送数据时,将触发客户端的回调函数:SDK Filter通信数据回调函数(参考:BRAC_SetSDKFilterDataCallBack)
内核使用TCP通道传输,保证接收方收到的顺序与发送的顺序相同,且保证数据可达,不会丢包;
五、客户端与服务器之间传输缓冲区数据(透明通道接口)
客户端A登录服务器成功之后,便可使用透明通道接口与服务器传输数据
1、当客户端使用API接口:BRAC_TransBuffer向服务器发送数据时,将触发服务器的回调函数:透明通道数据回调函数
(参考:BRAS_SetTransBufferCallBack)
2、当服务器使用API接口:BRAS_TransBuffer向客户端发送数据时,将触发客户端的回调函数:透明通道数据回调函数;
内核使用TCP通道传输,保证接收方收到的顺序与发送的顺序相同,且保证数据可达,不会丢包;
(注:SDK Filter Data接口和透明通道接口效率相同,透明通道接口主要是为了兼容客户端API而设计的,为V4.1版本服务器新增接口,需要注意的是两者所对应的回调函数是不同的)
六、客户端与服务器之间使用扩展缓冲区通道传输数据
客户端A登录服务器成功之后,便可使用扩展缓冲区通道与服务器传输数据
1、当客户端使用API接口:BRAC_TransBufferEx向服务器发送数据时,将触发服务器的回调函数:透明通道数据扩展回调函数(参考:BRAS_SetTransBufferExCallBack)
2、当服务器使用API接口:BRAS_TransBufferEx向客户端发送数据时,客户端收到数据后,将触发客户端的回调函数:透明通道数据扩展回调函数(参考:BRAC_SetTransBufferExCallBack)。
内核使用UDP通道传输,不保证接收方收到的顺序与发送顺序相同,但是保证数据可达,丢包自动重传;
七、客户端与服务器之间传输文件
客户端A登录服务器成功之后,便可使用文件传输接口与服务器传输文件
1、当客户端A使用API接口:BRAC_TransFile向服务器发送文件时,服务器收到文件后,将触发服务器端的回调函数:文件传输回调函数(参考: BRAS_SetTransFileCallBack);
2、当服务器使用API接口:BRAS_TransFile向客户端发送文件时,客户端收到文件数据后,将触发客户端的回调函数:文件传输回调函数(参考:BRAC_SetTransFileCallBack);
内核使用UDP通道传输,不保证接收方收到的顺序与发送顺序相同,但是保证数据可达,丢包自动重传;
注:上文所提及的“服务器”是指采用AnyChat Server SDK所开发的业务层服务器。