一种服务器的选择方法、装置、设备及介质
相关申请的交叉引用
本申请要求在2021年03月09日提交中国专利局、申请号为202110256468.7、申请名称为“一种服务器的选择方法、装置、设备及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种服务器的选择方法、装置、设备及介质。
背景技术
在互联网时代下,全球各地的人都可以很方便通过网络进行多人的音视频通话。在这些通话的背后,都是通过架设在全球各地的大量服务器来转发数据实现的。音视频通话的质量也和服务器的选择密切相关,特别是在群组通话场景下,因为每次发起群组通话,有多少群员加入,在什么时候加入都是不确定的,这就给群组通话的服务器选择带来了很大的挑战,尤其是在基于中心服务器的数据转发架构下,对中心服务器的选择尤为严格。
发明内容
本申请实施例提供了一种服务器的选择方法、装置、设备及介质。用于准确地确定群组通话的中心服务器。
本申请实施例提供了一种服务器的选择方法,所述方法包括:
接收目标群组的主叫方发送的第一群组通话请求;其中,所述第一群组通话请求中携带有所述目标群组中每个会话成员的目标区域的信息;
针对每个所述目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器;
基于所述第一服务器分别与每个所述目标区域中的用户设备进行数据通信的平均延迟时长,确定所述目标群组进行群组通话的中心服务器。
本申请实施例提供了一种服务器的选择装置,所述装置包括:
接收模块,用于接收目标群组的主叫方发送的第一群组通话请求;其中,所述第一群组通话请求中携带有所述目标群组中每个会话成员的目标区域的信息;
确定模块,用于针对每个所述目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器;
处理模块,用于基于每个所述第一服务器,确定所述目标群组进行群组通话的中心服务器。
本申请实施例提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述所述服务器的选择方法的步骤。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述服务器的选择方法的步骤。
由于本申请实施例中,在接收到目标群组的主叫方发送的第一群组通话请求后,获取第一群组通话请求中携带的每个目标区域的信息,针对每个目标区域的信息,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器。然后对于获取到的每个第一服务器,获取该服务器分别与每个目标区域中的用户设备进行数据通信的平均延迟时长。最后根据获取到的每个第一服务器分别对应的平均延迟时长,确定目标群组进行群组通话的中心服务器,充分考虑了目标群组中每个参与群组通话的会话成员所在区域,从而提高了确定的中心服务器的准确性,有利于提高群组通话的质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种服务器的选择过程示意图;
图2为本申请实施例提供的一种确定的第一服务器的场景示意图;
图3为本申请实施例提供的一种确定中心服务器的场景示意图;
图4为本申请实施例提供的一种将第二服务器更新为第一服务器的场景示意图;
图5为本申请实施例提供的具体的服务器的选择流程示意图;
图6为本申请实施例提供的具体的再一种服务器的选择流程示意图;
图7为本申请实施例提供的一种服务器的选择装置的结构示意图;
图8为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了方便理解,下面对本申请实施例中涉及的部分概念进行解释:
中心服务器为在群组通话场景下,负责会话管理、会话成员信息维护和统计、拥塞控制和抗丢包等功能的服务器。群组通话中的所有数据包都必须经过中心服务器进行处理或者转发。
转发服务器为在群组通话场景下,负责在中心服务器和会话成员的用户设备之间转发数据的服务器,该转发服务器不涉及数据处理。
在实际应用场景中,当某一用户需要与其他用户进行群组通信时,比如, 在线会议等,预先在该用户的用户设备上安装用于群组通话的平台软件,在该平台软件上注册账户(为了方便说明,记为第一账户)并登录。然后通过该用户设备输入与每个其他用户的账户(为了方便说明,记为第二账户)建立群组的请求。
需要说明的是,输入该建立群组的请求的方式有很多,比如,用户可以通过语音的方式输入,也可以通过操作用户显示界面上显示的虚拟按钮的方式输入。具体的输入建立群组的请求的方式,可以根据实际需求进行灵活设置,在此不做具体限定。
当用户设备接收到用户输入的与每个第二账户建立群组的请求之后,生成群组加入请求并分别发送至每个登录第二账户的用户设备,从而实现将需要进行群组通信的每个第二账户邀请到同一群组内。其中,该群组加入请求中会携带有每个第二账户的标识信息。在本申请实施例中,为了方便描述,当某一第二账户加入到群组中之后,该第二账户即为该群组内的会话成员。
在实际应用过程中,当群组内某一会话成员希望进行群组通话时,可通过该用户设备输入建立群组通话的请求。用户设备接收到该建立群组通话的请求后,生成群组通话请求(为了方便描述,记为第一群组通话请求)并发送至用于确定中心服务器的电子设备,以通过该电子设备为该群组分配中心服务器。其中,该发起群组通话的会话成员的用户设备即为该群组的主叫方,接收到主叫方发起的群组通话邀请加入到群组通话的会话成员的用户设备为该群组的被叫方。
在一种可能的实施例中,当电子设备接收到某一目标群组的主叫方发送的第一群组通话请求后,获取目标群组的主叫方分别与直连的每个服务器进行数据通信的延迟时长,直接将延迟时长最小的服务器确定为中心服务器。而对于目标群组的被叫方来说,在接收到主叫方发起群组通话的邀请后,根据该被叫方分别与其直连的每个服务器进行数据通信的延迟时长,将延迟时长最小的服务器确定为转发服务器,以通过转发服务器将被叫方发送的数据转发给中心服务器,或者通过转发服务器接收中心服务器发送的数据并转发 给被叫方。后续目标群组在群组通话过程中,中心服务器接收主叫方以及转发服务器发送的数据,对接收到的数据进行管理和分发,比如,接收主叫方发送的音视频数据,将主叫方的音视频数据发送给每个被叫方对应的转发服务器,或者接收任一转发服务器发送的音视频数据并复制成多份,将每份音视频数据分发给主叫方、及其他被叫方对应的转发服务器等。
对于上述确定中心服务器的方法,如果只是根据主叫方分别与直连的服务器的延迟时长,确定中心服务器的话,会使得与该中心服务器通信延迟较高的转发服务器无法及时将群组通话中的数据进行转发,影响了该转发服务器所对应的会话成员参与群组通话的体验,降低群组通话的质量,使得目标群组中不同的会话成员的通话质量存在很大的差异,同时也会造成与中心服务器之间进行数据通信的链路较长的每个被叫方之间,在群组通话过程中的数据通信的延迟过大,影响用户体验。
比如,当群组中有两个目标区域为中国的会话成员和一个目标区域为美国的会话成员时,如果是美国的会话成员发起群组通话,则确定的中心服务器很可能会选择在美国,那么任一中国的会话成员的音视频数据包就需要先转发到美国的中心服务器,然后再发送回另一个中国的会话成员的用户设备上,从而使得两个目标区域为中国的会话成员之间数据通信的延迟过大。
为了解决上述的问题,本申请实施例提供了一种服务器的选择方法、装置、设备及介质。在确定中心服务器的过程中,在接收到目标群组的主叫方发送的第一群组通话请求后,获取第一群组通话请求中携带的每个目标区域的信息,针对每个目标区域的信息,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器。然后对于获取到的每个第一服务器,获取该服务器分别与每个目标区域中的用户设备进行数据通信的平均延迟时长。最后根据获取到的每个第一服务器分别对应的平均延迟时长,确定目标群组进行群组通话的中心服务器,充分考虑了目标群组中每个参与群组通话的会话成员所在区域,从而提高了确定的中心服务器的准确性,有利于提高群组通话的质量。
需要说明的是,上述实施例中所举出的应用场景仅是为了方便说明所提出的示例性的场景,并不是对本申请实施例所提供的一种服务器的选择方法、装置、设备及介质的应用场景的一种限定。本领域技术人员应当知道,本申请实施例所提供的一种服务器的选择方法、装置、设备及介质可以应用到所有需要中心服务器的应用场景中,比如,在线会议,直播网课、互联网即时通讯产品的群组通话场景等。
实施例1:
图1为本申请实施例提供的一种服务器的选择过程示意图,该过程包括:
S101:接收目标群组的主叫方发送的第一群组通话请求;其中,所述第一群组通话请求中携带有所述目标群组中每个会话成员的目标区域的信息。
本申请实施例提供的服务器的选择方法应用于提供后台服务的电子设备,该电子设备可以为用于提供后台服务的智能设备,也可以是提供后台服务的服务器。
为了方便准确地确定中心服务器,当目标群组需要进行群组通话时,该目标群组的主叫方会向电子设备发送第一群组通话请求,而该第一群组通话请求中会携带有当前群组中每个会话成员的区域(为了方便描述,记为目标区域)的信息,以及第一标识信息。其中,第一标识信息用于标识该群组通话请求为群组通话的主叫方发送的。
电子设备接收到目标群组的群组通话请求之后,对该群组通话请求进行解析,若解析出该群组通话请求中携带的第一标识信息,则确定该群组通话请求为该目标群组的主叫方发送的第一群组通话请求。电子设备需要为该目标群组的通话分配中心服务器,以便后续通过中心服务器对通话过程中所产生的数据进行传输与管理。电子设备基于该第一群组通话请求中携带的该目标群组中每个会话成员的目标区域的信息,进行相应的处理,从而确定该目标群组进行群组通话的中心服务器。
在本申请实施例中,区域可以为省、市、县、州、国家等任何大小的地理区域,也可以为自定义划分的某一地理区域,比如,将某一成员的所在的 小区确定为一个区域等。其中,每个会话成员的目标区域可以是不同等级的地理区域,比如,会话成员A的目标区域是某小区,会话成员B的目标区域是某县。具体实施过程中,如何设置会话成员的目标区域可以根据需求进行灵活设置,在此不作具体限定。
其中,通过自定义划分地理区域时,可以考虑每个会话成员的分布情况进行划分。比如,某一小区的会话成员较多,进行数据通信的需求较大,可以将该小区确定为一个区域,该小区的会话成员的目标区域均为该小区,某一省的会话成员较少,进行数据通信的需求也不大,则可以将该省确定为一个区域,该省的会话成员的目标区域均为该省。
需要说明的是,目标区域的信息包括目标区域的标识信息,用以区分每个不同的区域。该目标区域的标识信息可以是数字、字母、特殊符号、字符串等,也可以为其他形式的,只要能唯一标识该目标区域的均可作为本申请实施例中的目标区域的标识信息。
S102:针对每个所述目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器。
在本申请实施例中,可以基于群组中每个会话成员的分布情况,确定一个与每个会话成员的用户设备数据通信的延迟较低的服务器,将该服务器确定为当前群组通话的中心服务器,以避免出现与中心服务器进行数据通信的链路较长的每个被叫方之间数据通信的延迟过大的问题。
具体的,针对每个目标区域,获取该目标区域中的用户设备分别与直连的服务器进行数据通信的延迟时长(为了方便描述,记为第一延迟时长),根据获取到的每个第一延迟时长,确定该目标区域对应的第一服务器。后续基于每个目标区域对应的第一服务器,进行相应的处理,从确定的第一服务器中,确定目标群组进行群组通话的中心服务器。
在本申请实施例中,为了准确地确定每个目标区域对应的第一服务器,预设有筛选条件。当基于上述实施例获取到该目标区域中的用户设备被分别 与直连的服务器进行数据通信的第一延迟时长后,判断获取到的任一第一延迟时长是否满足预设的筛选条件,将第一延迟时长满足预设的筛选条件一个服务器确定为该目标区域对应的第一服务器。
其中,在设置筛选条件时,可以根据场景的不同,设置不同的筛选条件。为了尽可能地保证后续群组通话的通信质量,满足筛选条件可以是第一延迟时长的最小值;为了避免确定的第一服务器为中心服务器后进行群组通话所花费的成本过多,满足筛选条件可以是第一延迟时长小于该目标区域对应的延迟阈值(为了方便描述,记为第一延迟阈值)。
需要说明的是,任一服务器对应的第一延迟时长可以是该目标区域的每个用户设备与该服务器进行数据通信的延迟时长的平均值、最大值、最小值等,也可以是该目标区域的任一用户设备与该服务器进行数据通信的延迟时长。
在一种可能的实施方式中,当满足该筛选条件是第一延迟时长最小时,获取到该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长之后,确定获取到的每个第一延迟时长中的最小值,将最小值所对应的服务器确定为该目标区域对应的第一服务器。
在本申请实施例中,任一目标区域对应的第一延迟阈值可以是根据该目标区域对应的任一第一延迟时长以及预先配置的波动值确定的,或者是根据该目标区域对应的任一第一延迟时长以及预先配置的比例确定的。其中,该任一第一延迟时长可以为该目标区域对应的每个第一延迟时长中的最小值、最大值等。比如,当任一目标区域对应的第一延迟阈值是根据该目标区域对应的每个第一延迟时长中的最小值和预先配置的波动值确定的时,若该目标区域对应的第一延迟时长的最小值为100ms,预先配置的波动值为50ms,则该目标区域对应的第一延迟阈值为150ms;当任一目标区域对应的第一延迟阈值是根据该目标区域对应的每个第一延迟时长中的最小值和预先配置的比例确定的时,若该目标区域对应的第一延迟时长的最小值为100ms,预先配置的比例为20%,则该目标区域对应的第一延迟阈值为120ms。
在另一种可能的实施方式中,当满足该筛选条件是第一延迟时长小于该目标区域对应的延迟阈值时,对于任一目标区域,获取到该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长之后,可以依次或随机确定获取到的每个第一延迟时长是否小于该目标区域对应的第一延迟阈值。当确定存在小于该目标区域对应的第一延迟阈值的第一延迟时长时,可以直接将该第一延迟时长对应的服务器确定为该目标区域对应的第一服务器;也可以分别确定了获取到的每个第一延迟时长是否小于该目标区域对应的第一延迟阈值之后,从小于该目标区域对应的第一延迟阈值的第一延迟时长中,将任一第一延迟时长所对应的服务器确定为该目标区域对应的第一服务器。
S103:基于所述第一服务器分别与每个所述目标区域中的用户设备进行数据通信的平均延迟时长,确定所述目标群组进行群组通话的中心服务器。
当基于上述的实施例获取到了每个目标区域分别对应的第一服务器之后,针对每个第一服务器,确定该第一服务器分别与每个目标区域中的用户设备进行数据通信的延迟时长(为了方便描述,记为第二延迟时长),根据获取到的每个第二延迟时长,确定该目标区域对应的平均延迟时长。基于每个目标区域分别对应的平均延迟时长,进行相应的处理,从获取到的每个第一服务器中,确定该目标群组进行群组通话的中心服务器,以实现根据目标群组内的每个会话成员所在区域的信息,选择合适的中心服务器。
在一种可能的实施方式中,为了准确地确定目标群组进行群组通话的中心服务器,所述基于所述第一服务器分别与每个所述目标区域中的用户设备进行数据通信的平均延迟时长,确定所述目标群组进行群组通话的中心服务器,包括:
将平均延迟时长满足预设的第一通信要求的任一第一服务器确定为所述中心服务器。
为了准确地确定目标群组进行群组通话的中心服务器,在本申请实施例中,预设有通信要求(为了方便说明,记为第一通信要求)。当基于上述实施例分别获取到了每个第一服务器对应的平均延迟时长后,对于获取到的任一 平均延迟时长,可以依次或随机判断该平均延迟时长是否满足预设的第一通信要求。当确定某一平均延迟时长满足预设的第一通信要求时,可以直接将该平均延迟时长所对应的服务器确定为目标群组进行群组通话的中心服务器;也可以分别确定了获取到的每个平均延迟时长是否满足预设的第一通信要求之后,从满足预设的第一通信要求的平均延迟时长中,将任一平均延迟时长所对应的服务器确定为目标群组进行群组通话的中心服务器。
其中,在设置第一通信要求时,也可以根据场景的不同,设置不同的第一通信要求。为了尽可能地保证群组通话的通信质量,满足第一通信要求的服务器可以是第一延迟时长最小的服务器;为了负载均衡,平均延迟时长满足第一通信要求的第一服务器可以是按照平均延迟时长从大到小的顺序,将排序在前的预设数量的平均延迟时长所对应的第一服务器中,负载最小的第一服务器。具体实施过程中,可以根据实际需求进行灵活设置,在此不做具体限定。
由于本申请实施例中,在接收到目标群组的主叫方发送的第一群组通话请求后,获取第一群组通话请求中携带的每个目标区域的信息,针对每个目标区域的信息,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器。然后对于获取到的每个第一服务器,获取该服务器分别与每个目标区域中的用户设备进行数据通信的平均延迟时长。最后根据获取到的每个第一服务器分别对应的平均延迟时长,确定目标群组进行群组通话的中心服务器,充分考虑了目标群组中每个参与群组通话的会话成员所在区域,从而提高了确定的中心服务器的准确性,有利于提高群组通话的质量。
实施例2:
为了充分考虑群组通话中每个会话成员的分布情况,准确地确定中心服务器,在上述实施例的基础上,在本申请实施例中,获取所述第一服务器分别与每个所述目标区域中的用户设备进行数据通信的平均延迟时长,包括:
获取每个所述目标区域分别对应的权重值;
根据每个所述目标区域分别对应的第二延迟时长以及权重值,确定所述第一服务器对应的平均延迟时长,其中,任一目标区域对应的第二延迟时长为所述第一服务器与该目标区域的用户设备进行数据通信的延迟时长。
在实际应用场景中,某一群组进行群组通话的过程中,该群组所包含的任一目标区域中需要进行群组通话的会话成员的数量,在一定程度上可以体现该目标区域进行群组通话的活跃度。目标区域内需要进行群组通话的会话成员的数量越多,则该目标区域进行群组通话的活跃度越高,目标区域内需要进行群组通话的会话成员的数量越少,则该目标区域进行群组通话的活跃度越低。不同目标区域中需要进行群组通话的会话成员的数量是不同的,即不同目标区域的活跃度是不同的,导致每个目标区域对确定的中心服务器的要求是不同的。一般情况下,要尽可能保证大部分需要进行群组通话的会话成员在群组通话过程中的通话质量,即尽可能保证活跃度高的目标区域所包含的需要进行群组通话的会话成员在群组通话过程中的通话质量。因此,在本申请实施例中,可以基于该群组中每个目标区域的活跃度,即基于每个目标区域所包含的会话成员的数量,确定每个目标区域分别对应的权重值。然后针对每个第一服务器,根据该第一服务器分别与每个目标区域中的用户设备进行数据通信的第二延迟时长和每个目标区域分别对应的权重值,确定该第一服务器对应的平均延迟时长。将平均延迟时长满足预设的第一通信要求的任一第一服务器确定为目标群组进行群组通话的中心服务器,从而实现根据目标群组内会话成员的分布情况以及每个目标区域的活跃度,选择合适的中心服务器。
其中,在确定每个目标区域分别对应的权重值时,只需保证该群组中目标区域的活跃度越高,则该目标区域对应的权重值越高,该群组中目标区域的活跃度越低,则该目标区域对应的权重值越低。
需要说明的是,第一服务器与任一目标区域中的用户设备进行数据通信的第二延迟时长可以是该第一服务器与该目标区域的每个用户设备进行数据通信的延迟时长的平均值、最大值、最小值等,也可以是该目标区域的任一 用户设备与该第一服务器进行数据通信的延迟时长。
例如,图2为本申请实施例提供的一种确定的第一服务器的场景示意图。如图2所示,假设某一群组内的会话成员分布在n个不同的目标区域,包括每个目标区域的第一区域集合为C,包括每个目标区域对应的权重值的权重集合为W,c
i代表第i个目标区域,w
i代表c
i对应的权重,其中,1≤i≤n。基于上述实施例中的方法确定了每个目标区域对应的第一服务器后,将每个第一服务器添加到候选服务器集合R(r
1,r
2,···,r
n)中。将候选服务器集合R(r
1,r
2,···,r
n)中,平均延迟时长满足预设的第一通信要求的任一第一服务器确定为当前群组通话的中心服务器。
在一种可能的实施方式中,在根据每个所述目标区域分别对应的第二延迟时长以及权重值,确定第一服务器对应的平均延迟时长,包括:
分别确定每个所述目标区域分别对应的第二延迟时长与对应的权重值的乘积;
根据每个所述乘积以及每个所述权重值,确定所述第一服务器对应的平均延迟时长。
具体实施过程中,确定每个目标区域分别对应的权重值的权重和,并针对每个目标区域,确定该目标区域对应的第二延迟时长与该目标区域对应的权重值的乘积。根据每个目标区域分别对应的乘积以及确定的权重和,确定该第一服务器对应的平均延迟时长。
在一种可能的实施方式中,根据每个目标区域分别对应的第二延迟时长以及权重值,确定第一服务器对应的平均延迟时长可以通过如下公式确定:
其中,AVG(RTT
i)为第i个第一服务器对应的平均延迟时长,w
j为第j个目标区域对应的权重值,
为根据n个目标区域分别对应的权重值所确定的权重和,RTT
ji为第i个第一服务器与第j个目标区域中的用户设备进行数据通信的第二延迟时长。
在本申请实施例中,由于在确定任一第一服务器对应的平均延迟时长时,考虑了每个目标区域的活跃度,继而根据每个目标区域的活跃度,确定每个目标区域分别对应的权重值,使得确定的平均延迟时长更加贴近实际群组通话的参与情况,提高后续分配的中心服务器的准确性。
在一种可能的实施方式中,为了方便确定每个目标区域分别对应的权重值,若所述第一群组通话请求中还携带有所述目标群组的目标群组标识信息,所述获取每个所述目标区域分别对应的权重值,包括:
若所述目标群组标识信息与已配置了权重值的群组标识信息均不匹配,则分别根据所述目标群组中每个所述目标区域所包含的会话成员的数量,确定每个所述目标区域分别对应的权重值。
为了通过每个目标区域分别对应的权重值,可以体现每个目标区域的用户的活跃度,在本申请实施例中,可以分别根据目标群组中每个目标区域所包含的会话成员的数量,确定每个目标区域分别对应的权重值。具体的,当电子设备接收到目标群组的主叫方发送的第一群组通话请求后,对该第一群组通话请求进行解析,获取该第一群组通话请求中携带的该目标群组中每个会话成员的目标区域的信息。根据每个会话成员的目标区域的信息,统计该目标群组中每个目标区域的活跃度,即统计该目标群组中每个目标区域所包含的会话成员的数量,从而确定该目标群组中每个目标区域所对应的权重值。
在一种可能实施方式中,为了方便确定目标群组进行下一次群组通话时,确定中心服务器,在本申请实施例中,在基于上述实施例确定了目标群组中每个目标区域所对应的权重值后,可以将该目标群组中每个目标区域分别对应的权重值与该目标群组的群组标识信息(为了方便说明,记为目标群组标识信息)对应保存,即对应保存群组内每个区域分别对应的权重值与该群组的群组标识信息。后续当电子设备接收到目标群组的主叫方发送的第一群组通话请求后,对该第一群组通话请求进行解析,获取该第一群组通话请求中携带的该目标群组中每个会话成员的目标区域的信息和该目标群组的目标群组标识信息。然后将该目标群组标识信息与已配置了权重值的每个群组标识 信息进行匹配,根据匹配结果,确定目标群组内每个目标区域分别对应的权重值。
在实际应用场景中,可能存在目标群组第一次进行群组通话的情况,则将获取到的目标群组标识信息与已配置了权重值的每个群组标识信息进行匹配后,该目标群组标识信息无法与已配置了权重值的每个群组标识信息匹配,则可以基于上述实施例中的方法,根据第一群组通话请求中携带的每个目标区域的信息,确定目标群组中每个目标区域所包含的会话成员的数量,根据每个目标区域所包含的会话成员的数量,确定每个目标区域分别对应的权重值。
在某些可能的实施方式中,为了方便确定每个目标区域分别对应的权重值,在本申请实施例中,预先配置了群组内任一会话成员对应的单位权重值,比如,目标群组内任一会话成员对应的单位权重值为1.0。根据目标群组中每个目标区域所包含的会话成员的数量,以及预先配置的任一会话成员对应的单位权重值,分别确定每个目标区域分别对应的权重值。
比如,预先配置的任一会话成员对应的单位权重值为1.0。统计目标群组内中每个目标区域所包含的会话成员的数量,即确定每个会话成员的分布情况。假设目标群组中有两个目标区域为中国的会话成员,一个目标区域为美国的会话成员,一个目标区域为印度的会话成员,则根据每个目标区域所包含的会话成员的数量,分别确定目标区域为中国所对应的权重值为2*1.0=2.0,目标区域为美国所对应的权重值为1*1.0=1.0,目标区域为印度所对应的权重值为1*1.0=1.0。
在实际应用场景中,也可能存在目标群组不是第一次进行群组通话的情况,则将获取到的目标群组标识信息与已配置了权重值的每个群组标识信息进行匹配后,该目标群组标识信息可以与已配置了权重值的某一群组标识信息匹配,则可以获取匹配的群组标识信息所对应的每个区域分别对应的权重值,确定每个目标区域分别对应的权重值。
当基于上述的实施例确定了每个第一服务器以及每个目标区域分别对应 的权重值之后,针对每个第一服务器,根据该第一服务器分别与每个目标区域中的用户设备进行数据通信的第二延迟时长和每个目标区域分别对应的权重值,确定该第一服务器对应的平均延迟时长。后续基于每个第一服务器分别对应的平均延迟时长,确定该目标群组的中心服务器。
由于可能出现虽然保存有某一群组对应的权重值,但在之后的某一次群组通话时,由于该群组中新增了新的区域的会话成员,该新增的区域与该群组中其他会话成员的区域均不同,使得保存的该群组对应的每个区域所对应的权重值中,没有该新增的区域所对应的权重值。后续在确定该群组中新增的区域所对应的权重值时,可以针对每个新增的区域,根据该群组中该新增的区域所包含的会话成员的数量,确定该新增的区域对应的权重值。
在一种可能的实施方式中,根据该群组中该新增的区域所包含的会话成员的数量,以及预先配置的任一会话成员对应的单位权重值,确定该新增的区域分别对应的权重值。
图3为本申请实施例提供的一种确定中心服务器的场景示意图。如图3所示,c
i代表第i个目标区域,w
i代表c
i对应的权重,r
i代表第i个第一服务器,其中,1≤i≤4。以第一服务器r
4为例,若每个目标区域分别对应的权重值为1,该第一服务器r
4对应的平均延迟时长可以通过如下公式表示:
其中,AVG(RTT
4)为第一服务器r
4对应的平均延迟时长,w
j为第j个目标区域对应的权重值,RTT
j4为第一服务器r
4与第j个目标区域中的用户设备进行数据通信的第二延迟时长。
通过上述的公式,分别确定第一服务器r
1、r
2和r
3分别对应的平均延迟时长。
最终挑选出min(AVG(RTT
i))对应的服务器作为本次群组通话的中心服务器。
实施例3:
为了进一步提高群组通话的质量,在上述实施例的基础上,在本申请实 施例中,所述针对每个所述目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器之后,所述基于所述第一服务器分别与每个所述目标区域中的用户设备进行数据通信的平均延迟时长,确定所述目标群组进行群组通话的中心服务器之前,所述方法还包括:
针对除每个所述第一服务器之外的每个第二服务器,获取该第二服务器分别与每个所述第一服务器进行数据通信的总延迟时长;
将总延迟时长满足预设的第二通信要求的任一第二服务器确定为所述第一服务器。
基于上述实施例确定了每个第一服务器之后,为了保证群组通话的质量,避免存在除每个第一服务器之外的服务器比确定的第一服务器的通信质量更好,针对除每个第一服务器之外的第二服务器,获取该第二服务器分别与每个第一服务器进行数据通信的延迟时长(为了方便描述,记为第三延迟时长),根据每个第三延迟时长,确定该第二服务器对应的总延迟时长。
为了进一步提高群组通话的质量,在本申请实施例中,预设有第二通信要求。其中,满足该第二通信要求可以是总延迟时长最小,或,总延迟时长小于预设的延迟阈值(为了方便描述,记为第二延迟阈值)。当基于上述实施例获取到每个第二服务器分别对应的总延迟时长之后,判断获取到的任一总延迟时长是否满足预设的第二通信要求,将总延迟时长满足预设的第二通信要求的任一第二服务器确定为第一服务器。
需要说明的是,在设置第二延迟阈值时,可以根据场景的不同,设置不同的值,如果对中心服务器的延迟时长有严格的要求,可以将该第二延迟阈值设置的低一些;如果为了避免漏掉通信质量比每个目标区域分别对应的第一服务器好的第二服务器,可以将该第二延迟阈值设置的高一些。具体实施过程中,可以根据实际需求进行灵活设置,在此不做具体限定。
在一种可能的实施方式中,当满足该第二通信要求是总延迟时长最小时,获取了每个第二服务器分别对应的总延迟时长之后,确定获取到的每个总延 迟时长中的最小值,将最小值所对应的第二服务器确定为第一服务器。
在另一种可能的实施方式中,当满足该第二通信要求是总延迟时长小于预设的第二延迟阈值时,获取了每个第二服务器分别对应的总延迟时长之后,可以依次或随机确定总延迟时长是否小于预设的第二延迟阈值,当确定存在小于预设的第二延迟阈值的总延迟时长时,可以直接将该总延迟时长对应的第二服务器确定为第一服务器;也可以分别确定了每个总延迟时长是否小于预设的第二延迟阈值之后,从小于预设的第二延迟阈值的总延迟时长中,选取任一总延迟时长所对应的第二服务器确定为第一服务器。
比如,图4为本申请实施例提供的一种将第二服务器确定为第一服务器的场景示意图。如图4所示,c
i代表第i个目标区域,r
i代表第i个第一服务器,其中,1≤i≤3,r
4为第二服务器。
针对除每个第一服务器之外的每个第二服务器,获取该第二服务器与每个第一服务器之间进行数据通信的总延迟时长;将总延迟时长最小的第二服务器更新为第一服务器,即作为r
4加入到候选服务器集合R中。
其中,假设表示第i个第二服务器和第j个第一服务器之间进行数据通信的第二延迟时长,将
最小的第二服务器r
j作为r
4加入到候选服务器集合R中。
当基于上述的实施例确定了每个第一服务器之后,获取每个目标区域分别对应的权重值,针对每个第一服务器根据该第一服务器分别与每个目标区域中的用户设备进行数据通信的第二延迟时长和每个目标区域分别对应的权重值,确定该第一服务器对应的平均延迟时长。后续基于每个第一服务器分别对应的平均延迟时长,确定该目标群组的中心服务器。
例如,以图4为例,假设每个目标区域分别对应的权重值为1,确定第一服务器r
4对应的平均延迟时长可通过如下公式确定:
其中,AVG(RTT
4)为第一服务器r
4对应的平均延迟时长,w
j为第j个目标 区域对应的权重值,1≤j≤3,RTT
j4为第一服务器r
4与第j个目标区域中的用户设备进行数据通信的第二延迟时长。
实施例4:
为了准确地确定中心服务器,在上述各实施例的基础上,在本申请实施例中,所述方法还包括:
接收所述目标群组的被叫方发送的第二群组通话请求;其中,所述第二群组通话请求中携带有所述目标群组的目标群组标识信息;
获取与所述目标群组标识信息匹配的已配置了中心服务器的群组标识信息;
根据匹配的群组标识信息所对应的中心服务器,确定所述目标群组进行群组通话的中心服务器。
在本申请实施例中,当电子设备接收到目标群组的被叫方发送的第二群组通话请求后,也是需要根据该第二群组通话请求中携带的信息,确定目标群组进行群组通话的中心服务器,将确定的中心服务器的信息发送至该被叫方,以便后续被叫方参与到目标群组的群组通话中。
具体实施过程中,当被叫方接收到用户输入的确定接入到群组通话的确认操作后,便生成并发送群组通话请求(为了方便说明,记为第二群组通话请求)。其中,第二群组通话请求中携带有该目标群组的群组标识信息以及标识该第二群组通话请求为被叫方发送的标识信息(为了方便说明,记为第二标识信息)。
电子设备接收到群组通话请求之后,对该群组通话请求进行解析,若获取到该群组通话中携带的第二标识信息,则确定该群组通话请求为目标群组的被叫方发送的第二群组通话请求。基于该第二群组通话请求中携带的目标群组标识信息,确定与该目标群组标识信息匹配的已配置了中心服务器的群组标识信息。获取匹配的群组标识信息所对应的中心服务器(为了方便描述,记为目标中心服务器)。将该目标中心服务器确定为目标群组进行群组通话的中心服务器,并将该中心服务器的信息发送至被叫方。
为了进一步保证群组通话的通信质量,在本申请实施例中,所述确定所述目标群组进行群组通话的中心服务器之后,所述方法还包括:
根据发送群组通话请求的目标会话成员所在区域的信息,确定所述目标会话成员对应的第一链路延迟和第二链路延迟;其中,所述群组通话请求为所述第一群组通话请求,或,所述第二群组通话请求,所述第一链路延迟为所述目标会话成员所在区域的用户设备直接与所述中心服务器进行数据通信的链路的链路延迟,所述第二链路延迟为所述目标会话成员所在区域的用户设备通过转发服务器转发的方式与所述中心服务器进行数据通信的链路的链路延迟;
根据所述第一链路延迟和所述第二链路延迟,确定所述目标会话成员的用户设备与所述中心服务器进行数据通信的链路。
现有技术中,针对目标群组中的任一会话成员,当该会话成员接入进群组通话后,该会话成员的用户设备可以采集到该会话成员所输入的数据,比如,音视频数据等,然后便将采集到的数据直接发送至预先确定的该会话成员对应的转发服务器,由该转发服务器将该数据转发至中心服务器,以便中心服务器对该数据进行管理和转发给群组内其他会话成员的用户设备等处理。其中,任一会话成员对应的转发服务器通过如下方式确定:
获取该会话成员的目标用户设备分别与该目标用户设备直连的每个服务器进行数据通信的延迟时长;
将最小的延迟时长所对应的服务器确定为该会话成员对应的转发服务器。
对于上述的方式,其并未考虑该会话成员对应的转发服务器与中心服务器之间链路的通信质量是否良好,便确定由转发服务器将会话成员输入的数据转发至中心服务器,使得在群组通话过程中,一旦该会话成员对应的转发服务器与中心服务器之间链路的通信质量较差,会降低该群组通话的质量,影响用户体验。
为了解决上述的问题,在确定了某一群组通话的中心服务器之后,根据接收到的群组通话请求中携带的目标群组中每个会话成员所在区域的信息, 确定发送该群组通话请求的会话成员(为了方便说明,记为目标会话成员)所在区域的信息。获取该目标会话成员所在区域的用户设备直接与该中心服务器进行数据通信的链路的第一链路延迟,并确定该目标会话成员所在区域的用户设备通过转发服务器转发的方式与中心服务器进行数据通信的链路的第二链路延迟。然后将第一链路延迟与第二链路延迟进行比较,根据比较结果,确定目标会话成员的用户设备与该中心服务器进行数据通信的链路。
其中,该群组通话请求为第一群组通话请求或第二群组通话请求。
若第一链路延迟比第二链路延迟小,则确定目标会话成员的用户设备直接与该中心服务器进行数据通信。
若第一链路延迟比第二链路延迟大,则确定目标会话成员的用户设备通过转发服务器转发的方式与该中心服务器进行数据通信。
其中,第二链路延迟是根据目标会话成员的用户设备与该目标会话成员对应的转发服务器进行数据通信的延迟时长和该目标会话成员对应的转发服务器与中心服务器进行数据通信的延迟时长确定的。
例如,若接收到的群组通话请求为目标群组中的某一被叫方发送的第二群组通话请求,电子设备对该第二群组通话请求进行解析,获取该第二群组通话请求中携带的被叫方所在区域的信息和目标群组标识信息。将该目标群组标识信息与已配置了中心服务器的群组标识信息进行匹配,确定与该目标群组标识信息匹配的群组标识信息所对应的中心服务器。然后确定被叫方所在区域的用户设备直接与该中心服务器进行数据通信的链路的第一链路延迟,并确定该被叫方所在区域的用户设备通过转发服务器转发的方式与中心服务器进行数据通信的链路的第二链路延迟。若第一链路延迟比第二链路延迟小,则确定该被叫方直接与该中心服务器进行数据通信。若第一链路延迟比第二链路延迟大,则确定被叫方通过转发服务器转发的方式与该中心服务器进行数据通信。
再例如,若接收到的群组通话请求为目标群组的主叫方发送的第一群组通话请求,电子设备根据该第一群组通话请求,确定发送该第一群组通话请 求的目标会话成员所在区域的信息,即主叫方所在区域的信息,并基于上述实施例中的方法,确定目标群组进行群组通话的中心服务器。获取主叫方所在目标区域的用户设备直接与该中心服务器进行数据通信的链路的第一链路延迟,并获取主叫方所在区域的用户设备通过转发服务器转发的方式与中心服务器进行数据通信的链路的第二链路延迟。若第一链路延迟比第二链路延迟小,则确定主叫方直接与该中心服务器进行数据通信。若第一链路延迟比第二链路延迟大,则确定主叫方通过转发服务器转发的方式与该中心服务器进行数据通信。
基于上述实施例中的方法,通过对比目标会话成员对应的第一链路延迟和该目标会话成员对应的第二链路延迟,动态选择最优的与中心服务器进行数据通信的链路,进一步优化用户体验以及提高群组通话的通信质量。
实施例5:
为了方便后续准确地确定中心服务器,在上述各实施例的基础上,在本申请实施例中,所述方法还包括:
若确定发送群组通话请求的目标会话成员第一次加入到当前群组通话,则根据所述群组通话请求,获取所述目标会话成员所在区域的信息;其中,所述群组通话请求为所述第一群组通话请求,或,所述第二群组通话请求;
若在保存的所述目标群组的每个所述目标区域分别对应的权重值中,获取到所述目标会话成员所在区域对应的目标权重值,则对所述目标权重值进行更新并保存。
在群组通话场景下,不同的群组对于群组通话请求的需求也可能是不一样的,比如,有的群组经常进行群组通话,而有的群组只是偶尔进行群组通话,目标群组进行群组通话的次数,对不同区域进行群组通话的活跃度有一定的影响,进而对确定的中心服务器有一定的影响。因此,为了方便后续准确地确定中心服务器,在本申请实施例中,可以根据目标群组在每次群组通话过程中电子设备接收到的群组通话请求,对保存的该目标群组的每个目标区域分别对应的权重值进行更新。
在一种可能的实施方式中,预先配置有增量权重值。根据群组通话请求中携带的信息,确定发送该群组通话请求的目标会话成员所在区域的信息。在保存的目标群组的每个目标区域分别对应的权重值中,确定该目标会话成员所在区域对应的目标权重值。根据该目标权重值与预先配置的增量权重值的和,对目标权重值进行更新并保存。
其中,预先配置的增量权重值以是预先配置的数值范围内的任一数值,也可以是预设的某一固定数值。
在实际应用过程中,在目标群组的某一次群组通话过程中,还可能出现某一会话成员由于网络等原因退出群组通话后,又重新加入该次群组通话的情况,如果电子设备只根据接收到群组通话请求,便直接对保存的该目标群组的每个目标区域分别对应的权重值进行更新,则容易在某一次群组通话过程中,由于某一会话成员的多次加入,使得该会话成员所在区域对应的权重值被增大,无法准确地体现该区域的会话成员进行群组通话的活跃度。因此,为了准确地更新目标群组的每个目标区域分别对应的权重值,在本申请实施例中,在根据接收到目标群组的群组通话请求,对保存的该目标群组的每个目标区域分别对应的权重值进行更新之前,判断发送该群组通话请求的目标会话成员是否为第一次加入到当前群组通话中。若确定该目标会话成员第一次加入到当前群组通话中,则可以基于上述实施例中的方法,根据接收到目标群组的群组通话请求,对保存的该目标群组的每个目标区域分别对应的权重值进行更新。
在一种可能的实施方式中,电子设备可以每接收到目标群组的群组通话请求后,便对该群组通话请求进行解析,获取该群组通话请求中携带的目标群组标识信息以及发送该群组通话请求的目标会话成员的标识信息,将目标群组标识信息与保存的正在进行群组通话的群组标识信息进行匹配。若不存在匹配的群组标识信息,说明该目标群组第一次进行群组通话,则直接确定发送群组通话请求的目标会话成员第一次加入到当前群组通话,并将目标群组标识信息以及目标会话成员的标识信息对应保存。若存在匹配的群组标识 信息,则获取匹配的群组标识信息所对应的已加入当前群组通话的成员标识信息,将获取到的目标会话成员的标识信息分别与每个成员标识信息进行匹配。若存在匹配的成员标识信息,说明该目标会话成员已加入过当前群组通话,确定该目标会话成员不是第一次加入到当前群组通话。若不存在匹配的成员标识信息,说明该目标会话成员没有加入过当前群组通话,确定该目标会话成员是第一次加入到当前群组通话,并将目标群组标识信息以及目标会话成员的标识信息对应保存。
其中,可以按照目标群组的每一次通话,将群组标识信息与成员标识信息对应保存,比如,目标群组的第一次群组通话,将加入到该群组通话的会话成员的标识信息与该目标群组的群组标识信息对应保存,目标群组的第N次群组通话,将加入到该第N次群组通话的会话成员的成员标识信息与该目标群组的群组标识信息对应保存,N为大于0的自然数,也可以在确定当前群组通话开始后,将目标群组的群组标识信息与加入到当前群组通话的会话成员的标识信息对应保存,当确定当前群组通话结束时,则将在当前群组通话过程保存的该目标群组的群组标识信息及其对应的会话成员的标识信息删除。
比如,接收到目标群组内某一目标会话成员发送的群组通话请求,基于上述实施例中的方法确定该目标会话成员第一次加入到当前群组通话,则会在该会话成员的目标区域对应的目标权重值中增加x,假设目标群组在第一次群组通话时,确定该目标群组的每个目标区域分别对应的权重值为中国对应的权重值为1.0,美国对应的权重值也为1.0,在目标群组进行第二次群组通话时,接收到目标区域为中国的会话成员发送的群组通话请求后,基于上述实施例中的方法确定该目标会话成员第一次加入到当前群组通话,则从保存的目标群组的每个目标区域分别对应的权重值中,确定该目标会话成员所在区域对应的目标权重值为1.0,根据该目标权重值1.0与预先配置的增量权重值x的和,即1.0+x,对目标权重值1.0进行更新并保存。
在目标群组进行第二次群组通话时,接收到目标区域为美国的会话成员 发送的群组通话请求,基于上述实施例中的方法确定该目标会话成员第一次加入到当前群组通话,则从保存的目标群组的每个目标区域分别对应的权重值中,确定该目标会话成员所在区域对应的目标权重值为1.0,根据该目标权重值1.0与预先配置的增量权重值x的和,即1.0+x,对目标权重值1.0进行更新并保存。
在实际应用场景中,还可能出现目标群组进行过多次群组通话后,某一会话成员新加入到该目标群组中,且该会话成员与目标群组中的其他会话成员所在的区域是不同的情况,后续当接收到该新加入的会话成员发送的群组通话请求后,基于上述实施例中的方法,可以确定该新加入的会话成员是第一次加入到当前群组通话,则根据接收到的群组通话请求,获取该新加入的会话成员所在区域的信息。根据该区域的信息,以及保存的该目标群组的每个目标区域分别对应的权重值,确定该区域没有对应的目标权重值,则无法基于上述实施例中的方法,对目标权重值进行更新。因此,在本申请实施例中,在基于上述实施例中的方法,确定目标会话成员第一次加入到当前群组通话之后,还要判断在保存目标群组的每个目标区域分别对应的权重值中,是否可以获取到目标会话成员所在区域对应的目标权重值。当确定在保存的目标群组的每个目标区域分别对应的权重值中,可以获取到目标会话成员所在区域对应的目标权重值时,才基于上述实施例中的方法,根据预先配置的增量权重值以及目标权重值的和,对该目标权重值进行更新并保存。
在某些可能的实施例中,当确定在保存的目标群组的每个目标区域分别对应的权重值中,无法获取到目标会话成员所在区域对应的目标权重值时,则获取该目标会话成员发送的群组通话请求中携带的目标群组中每个会话成员所在目标区域的信息;根据每个目标区域的信息以及该目标会员所在区域的信息,确定目标群组中在该目标会话成员所在区域的会话成员的数量。根据确定的数量,确定该目标会话成员所在区域对应的权重值,并将该目标会话成员所在区域对应的权重值与目标群组的群组标识信息对应保存。
在某些可能的实施方式中,预先配置了群组内任一会话成员对应的单位 权重值,比如,目标群组内任一会话成员对应的单位权重值为1.0。根据目标群组中在该目标会话成员所在区域的会话成员的数量,以及预先配置的任一会话成员对应的单位权重值,确定目标会话成员所在区域对应的权重值。
仍以上述为例,若目标群组在进行第二次群组通话时,接收到目标区域为印度的会话成员发送的群组通话请求,基于上述实施例中的方法确定该目标会话成员第一次加入到当前群组通话,但在保存的目标群组的每个目标区域分别对应的权重值中,无法获取到目标会话成员所在区域对应的目标权重值,则可以获取该目标会话成员发送的群组通话请求中携带的目标群组中每个会话成员所在目标区域的信息;根据每个目标区域的信息以及该目标会员所在区域的信息,确定目标群组中在该目标会话成员所在区域的会话成员的数量为1,即目标区域为印度的会话成员为1。根据确定的数量1以及预先配置的任一会话成员对应的单位权重值1.0,确定印度对应的权重值为1.0,并将该目标会话成员所在区域印度对应的权重值1.0与目标群组的群组标识信息对应保存。
由于在实际应用场景中,目标群组中的会话成员每隔一段时间会发生较大的变化。为了保证目标区域的每个目标区域所对应的权重值的准确性,在本申请实施例中,会预先配置一个时长阈值。当基于上述实施例将每个目标区域分别对应的权重值与该目标群组对应的群组标识信息对应保存时,会启动计时器开始计时,记录该目标群组对应的权重值的保存时长。后续该群组对应的权重值的保存时长达到预先配置的时长阈值时,则将该群组对应的权重值以及对应的群组标识信息删除,以便再次接收到该群组的主叫方发送的第一群组通话请求时,可以根据该第一群组通话请求中携带的当前群组中每个会话成员的目标区域的信息,重新确定该群组中每个目标区域对应的权重值。
实施例6:
为了提高确定中心服务器的效率,在上述各实施例的基础上,在本申请实施例中,所述方法还包括:
将所述中心服务器与包括每个所述目标区域的第一区域集合的对应关系保存;
若在预设时长内接收到的任一群组的主叫方发送的第三群组通话请求,获取所述第三群组通话请求中包含的所述群组中每个会话成员的区域的信息;
若包含所述群组中每个会话成员的区域的信息的第二区域集合分别与已配置了中心服务器的第一区域集合匹配,则直接将匹配的第一区域集合所对应的中心服务器确定为所述群组进行群组通话的中心服务器。
在实际应用场景中,电子设备接收到任一群组的主叫方每次发送的群组通话请求后,均要从多个服务器中,确定一个服务器作为该群组在该次通话的中心服务器,但可能会出现某一群组内的会话成员在短时间内进行了多次的群组通话,且每次通话的会话成员并没有发生改变的情况,使得每次所确定的中心服务器也一般是同一个服务器。基于此,在本申请实施例中,当基于上述实施例中的方法,确定了目标群组进行群组通话的中心服务器后,可以根据该次群组通话中每个会话成员的目标区域的信息,确定区域集合(为了方便描述,记为第一区域集合),然后将该中心服务器的标识信息以及该第二区域集合对应保存,以便后续再次接收到会话成员分布情况与该群组相同的任一群组的主叫方发送的群组通话请求(为了方便描述,记为第三群组通话请求),可以直接将已确定的中心服务器确定为该群组进行群组通话的中心服务器,避免每次都重新从每个服务器中,确定该群组在该次群组通话的中心服务器。
为了进一步保证确定地中心服务器的准确性,在本申请实施例中,预先配置了预设时长,以避免总是直接将某一第一区域集合对应的中心服务器,确定为与该第一区域集合的分布情况相同的其他群组进行群组通话的中心服务器,导致确定的中心服务器有效性和准确性较低。具体的,当基于上述实施例的方法,确定了目标群组进行群组通话的中心服务器后,将该中心服务器的标识信息以及该第一区域集合对应保存时,还需要启动计时器对该中心服务器的确定时长进行计时。若在预设时长内接收到任一群组的主叫方发送 的第三群组通话请求,则对该第三群组通话请求进行解析,获取该第三群组通话请求中携带的该群组中每个会话成员的区域的信息,并确定包含每个会话成员的区域的信息的区域集合(为了方便描述,记为第二区域集合)。将该第二区域集合分别与保存的已配置了中心服务器的第一区域集合进行匹配。若确定该第二区域集合与任一第一区域集合匹配,则可以直接将匹配的第一区域集合所对应的中心服务器确定为该群组进行群组通话的中心服务器。若确定该第二区域集合与每个第一区域集合均不匹配,则基于上述实施例的方法,根据该群组中每个会话成员的区域的信息,确定该群组进行群组通话的中心服务器。
其中,匹配是指该第一区域集合中包含的每个区域的信息与第二区域集合中包含的每个区域的信息完全一致。
在一种可能的实施方式中,为了减少用于存储第一区域集合与中心服务器的对应关系所耗费的资源,当确定该计时器记录的某一第一区域集合所对应的中心服务器的确定时长不小于预设时长时,可以将该第一区域集合与该中心服务器的对应关系删除。
实施例7:
下面通过具体的实施例对本申请实施例提供的服务器的选择方法进行详细的说明,图5为本申请实施例提供的具体的服务器的选择流程示意图,该流程包括:
S501:接收群组通话请求。
S502:判断该群组通话请求是否为主叫方发送的,若是,执行S503,否则,执行S509。
具体的判断该群组通话请求是否为主叫方发送的方法已在上述实施例中进行描述,重复之处不做赘述。
S503:判断该目标群组是否为第一次进行群组通话,若是,执行S504,否则,执行S505。
具体的,可以将该目标群组的目标群组标识信息与保存的已进行群组通 话的群组标识信息进行匹配,若存在匹配的群组标识信息,则确定该目标群组不为第一次进行群组通话;若不存在匹配的群组标识信息,则确定该目标群组为第一次进行群组通话。
S504:基于群组通话请求中携带的群组内每个会话成员的目标区域的信息,确定每个目标区域分别对应的权重值。
S505:获取保存的每个目标区域对应的权重值。
S506:确定每个目标区域对应的第一服务器。
具体的,针对每个目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器。
S507:针对除每个第一服务器之外的每个第二服务器,获取该第二服务器分别与每个第一服务器进行数据通信的总延迟时长;将总延迟时长满足预设的第二通信要求的任一第二服务器确定为第一服务器。
具体的,已在上述实施例中进行描述,重复之处不做赘述。
S508:针对每个第一服务器,确定第一服务器分别与每个目标区域中的用户设备进行数据通信的平均延迟时长;将平均延迟时长满足预设的第一通信要求的任一第一服务器确定为当前群组通话的中心服务器,执行S510。
S509:根据该群组通话请求中携带的目标群组标识信息,以及已配置了中心服务器的群组标识信息,确定该当前群组通话的中心服务器。
具体的,已在上述实施例中进行描述,重复之处不做赘述。
S510:判断发送该群组通话请求的目标会话成员是否第一次加入到当前的群组通话中,若是,执行S511,否则,执行S512。
S511:更新并保存该目标会话成员所在区域对应的权重值。
具体的,根据群组通话请求,获取目标会话成员所在区域的信息;
若在保存的目标群组的每个目标区域分别对应的权重值中,获取到目标会话成员所在区域对应的目标权重值,则对目标权重值进行更新并保存。
若在保存的目标群组的每个目标区域分别对应的权重值中,无法获取到目标会话成员所在区域对应的目标权重值,则根据群组通话请求中携带的每 个目标区域的信息,确定在目标会话成员所在区域的会话成员的数量;根据数量,确定目标会话成员所在区域对应的权重值并保存。
S512:根据发送群组通话请求的目标会话成员所在区域的信息,确定目标会话成员对应的第一链路延迟和第二链路延迟。
其中,第一链路延迟为该会话成员所在区域的用户设备直接与中心服务器进行数据通信的链路的链路延迟,第二链路延迟为目标会话成员所在区域的用户设备通过转发服务器转发的方式与中心服务器进行数据通信的链路的链路延迟。
S513:判断第一链路延迟是否小于第二链路延迟,若是,执行S514,否则,执行S515。
S514:确定目标会话成员的用户设备直接与该中心服务器进行数据通信。
S515:确定目标会话成员的用户设备通过转发服务器转发的方式与该中心服务器进行数据通信。
图6为本申请实施例提供的具体的再一种服务器的选择流程示意图,该流程包括:
S601:接收群组通话请求。
S602:判断该群组通话请求是否为主叫方发送的,若是,执行S603,否则,执行S612。
S603:获取该群组通话请求中包含的该目标群组中每个会话成员的目标区域的信息;将包含每个会话成员的目标区域的信息的第二区域集合分别与在预设时长内配置了中心服务器的第一区域集合进行匹配,若存在匹配的第一区域集合,执行S604,若不存在匹配的第一区域集合,执行S605。
S604:将匹配的第一区域集合所对应的中心服务器确定为该目标群组进行群组通话的中心服务器,执行S613。
S605:判断该群组通话请求中携带的目标群组标识信息是否与已配置了权重值的群组标识信息均不匹配,若是,执行S606,否则,执行S607。
S606:基于每个会话成员的目标区域的信息,确定每个目标区域分别对 应的权重值,执行S608。
S607:将匹配的群组标识信息的每个区域分别对应的权重值,确定为每个目标区域分别对应的权重值。
S608:确定每个目标区域分别对应的第一服务器。
具体的,针对每个目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器。
其中,S605~S607与S608的执行顺序不做限定,可以先执行S608后再执行S605~S607,也可以先执行S605~S607后再执行S608,当然也可以同时执行S605~S607和S608。
S609:针对除每个所述第一服务器之外的每个第二服务器,获取该第二服务器分别与每个所述第一服务器进行数据通信的总延迟时长。
S610:将总延迟时长最小第二服务器确定为第一服务器。
S611:针对每个第一服务器,确定该第一服务器分别与每个目标区域中的用户设备进行数据通信的平均延迟时长;将平均延迟时长最小的第一服务器确定为目标群组进行群组通话的中心服务器,执行S613。
S612:将该群组通话请求中携带的目标群组标识信息与已配置了中心服务器的群组标识信息进行匹配,将匹配的群组标识信息所对应的中心服务器确定为目标群组进行群组通话的中心服务器。
具体的,已在上述实施例中进行描述,重复之处不做赘述。
S613:判断发送该群组通话请求的目标会话成员是否第一次加入到当前的群组通话中,若是,执行S614,否则,执行S615。
S614:更新并保存该目标会话成员所在区域对应的权重值。
S615:根据发送群组通话请求的目标会话成员所在区域的信息,确定目标会话成员对应的第一链路延迟和第二链路延迟。
S616:判断第一链路延迟是否小于第二链路延迟,若是,执行S617,否则,执行S618。
S617:确定目标会话成员的用户设备直接与该中心服务器进行数据通信, 执行S619。
S618:确定目标会话成员的用户设备通过转发服务器转发的方式与该中心服务器进行数据通信。
S619:将第二区域集合以及确定的中心服务器的标识信息对应保存。
需要说明的是,本申请实施例提供的服务器的选择方法并不局限于群组通话的场景,在需要依赖中心服务器才能进行数据通信的其他场景中也同样适用。比如,线上游戏等。基于本申请实施例提供的在群组通话的场景下如何确定中心服务器的技术方案的描述,相信本领域技术人员可以基于该描述确定在其他需要依赖中心服务器才能进行数据通信的场景下,该如何确定中心服务器的技术方案。具体的,在此不做赘述。
实施例8:
图7为本申请实施例提供的一种服务器的选择装置的结构示意图,本申请实施例提供了一种服务器的选择装置,所述装置包括:
接收模块71,用于接收目标群组的主叫方发送的第一群组通话请求;其中,所述第一群组通话请求中携带有所述目标群组中每个会话成员的目标区域的信息;
确定模块72,用于针对每个所述目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器;
处理模块73,用于基于每个所述第一服务器,确定所述目标群组进行群组通话的中心服务器。
由于上述服务器的选择装置解决问题的原理与服务器的选择方法相似,因此上述服务器的选择装置的实施可以参见方法的实施,重复之处不再赘述。
由于本申请实施例中,在接收到目标群组的主叫方发送的第一群组通话请求后,获取第一群组通话请求中携带的每个目标区域的信息,针对每个目标区域的信息,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器。然后对于获取到 的每个第一服务器,获取该服务器分别与每个目标区域中的用户设备进行数据通信的平均延迟时长。最后根据获取到的每个第一服务器分别对应的平均延迟时长,确定目标群组进行群组通话的中心服务器,充分考虑了目标群组中每个参与群组通话的会话成员所在区域,从而提高了确定的中心服务器的准确性,有利于提高群组通话的质量。
实施例9:
图8为本申请实施例提供的一种电子设备结构示意图,该电子设备,包括:处理器81、通信接口82、存储器83和通信总线84,其中,处理器81,通信接口82,存储器83通过通信总线84完成相互间的通信;
所述存储器83中存储有计算机程序,当所述程序被所述处理器81执行时,使得所述处理器81执行如下步骤:
接收目标群组的主叫方发送的第一群组通话请求;其中,所述第一群组通话请求中携带有所述目标群组中每个会话成员的目标区域的信息;
针对每个所述目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器;
基于所述第一服务器分别与每个所述目标区域中的用户设备进行数据通信的平均延迟时长,确定所述目标群组进行群组通话的中心服务器。
实施例10:
在上述各实施例的基础上,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
接收目标群组的主叫方发送的第一群组通话请求;其中,所述第一群组通话请求中携带有所述目标群组中每个会话成员的目标区域的信息;
针对每个所述目标区域,根据该目标区域中的用户设备分别与直连的服务器进行数据通信的第一延迟时长,确定该目标区域对应的第一服务器;
基于所述第一服务器分别与每个所述目标区域中的用户设备进行数据通信的平均延迟时长,确定所述目标群组进行群组通话的中心服务器。
由于计算机可读存储介质解决问题的原理与上述实施例中的服务器的选择方法相似,因此具体实施可以参见服务器的选择方法的实施。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。