如何设置AnyChat的P2P连接策略

自AnyChat Platform Core SDK V2.8.6版本开始,AnyChat SDK向上层应用开放了内核的P2P连接策略,可以让应用程序来干预内核的P2P连接,以满足各种场合下的应用需求。

设置P2P连接策略的典型代码如下:

1.DWORD dwP2PPolitic = 3;

2.BRAC_SetSDKOption(BRAC_SO_NETWORK_P2PPOLITIC,(const char*)&dwP2PPolitic,sizeof(DWORD));

目前开放的P2P连接策略包含如下值:

  • 禁止P2P连接,不主动与其它用户建立P2P连接,也不接受其它用户发起的P2P连接请求;
  • 服务器控制P2P[默认],自动与当前房间内的所有用户建立P2P;
  • 2 上层应用控制P2P连接,不主动与其它用户建立P2P连接,但可接受其它用户发起的P2P连接请求,但应用程序可以下达与指定用户建立P2P连接的指令,收到上层应用的指令后,再尝试与该用户建立P2P连接;
  • 3 按需建立P2P连接,在需要建立P2P连接时(如请求对方的音频、视频数据),便自动尝试与该用户建立P2P连接,也自动接受其它用户的P2P连接请求;

P2P连接建立成功,或是断时,会通过P2P状态变化消息通知上层应用。

由于每个客户端的P2P连接资源是有限的(每个客户端最多可与30个用户建立P2P连接),所以不同的应用环境,需要设置不同的P2P连接策略。

AnyChat SDK默认是“服务器控制P2P”策略,用户进入房间后,将主动与房间内的所有用户建立P2P,该模式适用于同一个房间不超过50个用户(考虑到与部分客户端的P2P连接可能建立不成功)的应用,如果同一个房间的用户数较多,建议上层应用使用“上层应用控制P2P连接”或是“按需建立P2P连接”模式,使得客户端可以与需要的用户建立P2P,而不至于出现P2P连接资源被无关的用户占用的情况。

P2P连接策略可以初始化成功之后动态调整,但只有“禁止P2P连接”模式被设置后,会断开与其它用户的P2P连接,设置其它的模式,均不会断开现有P2P连接。当客户端设置为“禁止P2P连接”策略后,所有的音频、视频数据(包括自己传给其它用户,其它用户传给自己)都将通过服务器中转,可适用于某些特殊的应用场合。

在所有P2P连接策略中,最优的策略是“按需建立P2P连接”,但没有将其作为SDK的默认P2P连接策略,主要是该策略是新增,而为了兼容老版本的SDK,便将“服务器控制P2P”策略设置为默认连接策略。

当设置为“上层应用控制P2P连接”之后,便可以通过SDK提供的接口主动与指定的用户建立P2P连接,典型代码如下:

1.DWORD dwTargetUserId = 100;

2.BRAC_SetSDKOption(BRAC_SO_NETWORK_P2PCONNECT,(const char*)&dwTargetUserId,sizeof(DWORD));

我们建议一个应用平台上,均采用相同的P2P连接策略,否则可能出现特殊情况,例如:A用户采用“上层应用控制P2P连接”策略,B用户采用“服务器控制P2P”策略,两个用户进入房间后,虽然上层应用没有向A用户下达与B用户建立P2P连接的请求,但实际上A、B两用户之间仍然会建立P2P连接,因为B用户会主动与A用户建立连接。

注:上述所有“建立P2P连接”并不代表P2P连接一定能建立成功,这与实际的网络状态相关,只是表示“尝试与对方建立P2P连接”。

如何设置AnyChat的P2P连接策略

时间: 2024-10-27 18:43:21

如何设置AnyChat的P2P连接策略的相关文章

应用程序是否能控制SDK的P2P连接?

可以.自“AnyChat Platform Core SDK V2.8”版本开始,新增了P2P连接控制接口,之前的AnyChat SDK客户端优先P2P网络传输,其次是走服务器转发模式(P2P不通时),具体使用何种处理模式由SDK内部决定,上层应用无法干预,V2.8版本新增的数据流传输方式控制接口,可以实现由上层应用来控制客户端是P2P网络传输,还是服务器转发模式,以满足上层应用的特殊应用需求. 可以动态进行连接方式更改,向上层返回P2P连接状态(参考:P2P连接状态变化消息),并且可由上层查询

音视频通讯的P2P连接技术

在进行网络通信开发中,P2P技术大家都一定非常熟悉了,P2P是一种基于互联网环境的新的应用型技术.P2P 技术就是人可以直接连接到其他用户的计算机.交换文件,而不是像过去那样连接到服务器去浏览与下载.P2P另一个重要特点是改变互联网现在的以大网站为中心的状态.重返"非中心化",并把权力交还给用户.该技术.使用P2P通信技术,可以大大的减轻系统服务器的负荷,并成几何倍数的扩大系统的容量,且并不会因为在线用户数太多而导致服务器的网络阻塞.目前拥有先进的P2P技术是佰锐科技的AnyChat产

win7/win10-远程桌面 "由于安全设置错误, 客户端无法连接到远程计算机”

win7或win10 更新补丁后,远程桌面连接报错: "由于安全设置错误, 客户端无法连接到远程计算机. 确定你已登录到网络后." 解决方法如下: Step 1:打开"本地安全策略"- Win+R 并输入 secpol.msc (或者在"管理工具"中打开): Step 2:在本地安全策略中,打开"本地策略"下的"安全选项": 在右边的策略中,找到"系统加密:将FIPS算法用于加密 .哈希和签名&q

Android - 设置adb的usb连接配置

设置adb的usb连接配置 本文地址: http://blog.csdn.net/caroline_wendy 把须要測试的手机连接入电脑.通过系统查找USB连接配置,找到厂商ID: 把ID加入进adb_usb.ini; 使用命令: vi ~/.android/adb_usb.ini 如: 0x2717 0x9bb5 使用adb命令: adb kill-server adb start-server 能够方便Android Studio查找USB连接设备.

怎么样设置AnyChat视频质量?

如何设置AnyChat视频质量? AnyChat SDK视频质量主要是通过服务器的“AnyChatCoreServer.ini”配置文件来控制,该配置是整个系统所有房间的默认配置,早期的版本无法实现由上层应用来控制不同的用户采用不同的视频质量参数,自“AnyChat Platform Core SDK V2.8”版本开始,AnyChat便提供了本地视频质量控制接口,可以由上层应用控制本地视频的编码质量,为某些特定的应用提供了基础,例如:可以实现主持人发言时采用高质量的视频参数,而普通用户采集一般

如何设置AnyChat视频质量?

AnyChat SDK视频质量主要是通过服务器的“AnyChatCoreServer.ini”配置文件来控制,该配置是整个系统所有房间的默认配置,早期的版本无法实现由上层应用来控制不同的用户采用不同的视频质量参数,自“AnyChat Platform Core SDK V2.8”版本开始,AnyChat便提供了本地视频质量控制接口,可以由上层应用控制本地视频的编码质量,为某些特定的应用提供了基础,例如:可以实现主持人发言时采用高质量的视频参数,而普通用户采集一般的视频参数,从而达到发言者的视频效

电脑如何设置开机便自动连接网络

第一步:在网络邻居中找到宽带连接(具体方法:右键单击网上邻居找到属性后单击左键进入属性)然后找到"宽带连接"右键单击宽带连接的属性,打开属性 然后:"选项"→将"提示名称.密码和证书等"前面的勾去掉→单击"确定"!(见图) 第二部:将桌面上的宽带连接(如果没有就去网上邻居中的创建一个)剪切到"C:\Documents and Settings\Administrator\「开始」菜单\程序\启动"下 重启后

mysql设置指定ip远程访问连接的方法

本文实例讲述了mysql设置指定ip远程访问连接的方法,分享给大家供大家参考.具体实现方法如下: 1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: 复制代码 代码如下: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb51' WITH GRANT OPTION; flush privileges; 2.授权用户root使用密码jb51从指定ip为218.12.50.60的主机连接到mysql服务器: 复

wpa_cli P2P 连接相关的调试命令

在最近的一次客户端上的调试p2p的wifi display, 他们中的一半Android该调整了,整个前所以没有太多的研究p2p过程连接, 客户现在使用的非Android平台架构. 需要协助客户这么多东西debug 之前debug wifi 连接时用到了wpa_cli 来协助调试连接.那p2p怎么去调试呢? 能够用wpa_cli协助调试吗? 查看了代码有了肯定的答案, 命令中有p2p_find , p2p_connect , p2p_stop_find ...非常多命令 那这些命令怎么使用呢?