CN113923195A - 即时通讯服务的调度系统和方法 - Google Patents
即时通讯服务的调度系统和方法 Download PDFInfo
- Publication number
- CN113923195A CN113923195A CN202111165004.1A CN202111165004A CN113923195A CN 113923195 A CN113923195 A CN 113923195A CN 202111165004 A CN202111165004 A CN 202111165004A CN 113923195 A CN113923195 A CN 113923195A
- Authority
- CN
- China
- Prior art keywords
- connection
- client
- list
- nodes
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000001514 detection method Methods 0.000 claims abstract description 26
- 238000012163 sequencing technique Methods 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 239000000523 sample Substances 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1059—End-user terminal functionalities specially adapted for real-time communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1063—Application servers providing network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种即时通讯服务的调度系统和方法。该方案为:服务端在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序。客户端对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表。在客户端连接至第二连接列表中的目标连接节点的情况下,服务端通过目标连接节点为客户端提供即时通讯服务。本方案服务端根据客户端的网络特征筛选一批连接节点,客户端探测各个连接节点的实际连通质量,从而选择出最优的连接节点来建立连接,可提高即时通讯链路的连通率,解决了即时通讯链路的连通率较低的问题。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种即时通讯服务的调度系统和方法。
背景技术
即时通讯(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。即时通讯的消息传递速度极大影响了即时通讯系统的可用性和用户体验。消息传递速度不仅受即时通讯链路的建立时长影响,还受即时通讯链路的连通率、通信质量等的影响。即时通讯系统在使用前,通常需要客户端请求服务端接口,服务端向客户端返回连接节点和端口,客户端根据连接节点和端口与服务端建立即时通讯链路。但是往往服务端会给客户端大量连接节点和端口,但并不是所有节点和端口都是可用的,甚至大部分都是不可用的。即时通讯链路的连通率较低,导致现有即时通讯系统的可用性较差,在网络环境不稳定的情况下延迟现象尤为突出。
目前,相关技术中,仅发现服务端根据地域进行通信节点分配来提升通讯链路连通率的方案,但该方案虽然能一定程度上提升通讯链路的连通率,但还远远达不到即时通讯系统的即时性要求。
针对即时通讯链路的连通率较低的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种即时通讯服务的调度系统和方法,以解决即时通讯链路的连通率较低的技术问题。
根据本申请实施例的一个方面,本申请提供了一种即时通讯服务的调度系统,包括:
服务端,用于在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;在客户端连接至目标连接节点的情况下,通过目标连接节点为客户端提供即时通讯服务;
客户端,用于向服务端发送即时通讯服务请求;接收服务端响应即时通讯服务请求返回的第一连接列表;对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务。
根据本申请实施例的另一方面,本申请提供了一种即时通讯服务的调度方法,应用于服务端,包括:
在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;
在客户端连接至第二连接列表中的目标连接节点的情况下,通过目标连接节点为客户端提供即时通讯服务,其中,第二连接列表为客户端对第一连接列表中的连接节点进行实际连通质量探测后重新排序得到的。
可选地,接收客户端的即时通讯服务请求之后,所述方法还包括按照如下方式中的至少之一确定第一连接列表:
根据客户端的互联网协议地址确定客户端所在的目标地理位置;利用目标地理位置确定客户端所在的目标蜂窝小区;将预设在目标蜂窝小区中的连接节点按照与目标地理位置的距离进行排序,得到第一连接列表,其中,客户端的网络特征包括地理位置,匹配度包括距离;
将客户端的历史连通记录中的连接节点按照连通成功率排序,得到第一连接列表,其中,客户端的网络特征包括历史连通节点,匹配度包括连通成功率;
从客户端的历史连通记录中提取出与客户端的网络时延在第一阈值范围内的多个第一连接节点;从多个第一连接节点中,选择出与服务端的网络时延在第二阈值范围内的多个第二连接节点;按照客户端与多个第二连接节点的网络时延对多个第二连接节点进行排序,得到第一序列;按照服务端与多个第二连接节点的网络时延对多个第二连接节点进行排序,得到第二序列;按照预设位次阈值截取第一序列,得到第一目标序列,按照预设位次阈值截取第二序列,得到第二目标序列;将同时存在于第一目标序列和第二目标序列中的连接节点按照排位位次的数值之和进行排序,得到第一连接列表,其中,排位位次包括连接节点在第一目标序列中的排位位次和连接节点在第二目标序列中的排位位次,其中,客户端的网络特征包括网络时延,匹配度包括网络时延。
可选地,通过目标连接节点为客户端提供即时通讯服务之后,所述方法还包括:
接收客户端发送的第二连接列表;
按照第二连接列表中各个连接节点的排序顺序,更新各个连接节点与客户端的网络特征的匹配度。
根据本申请实施例的另一方面,本申请提供一种即时通讯服务的调度方法,应用于客户端,包括:
向服务端发送即时通讯服务请求;
接收服务端响应即时通讯服务请求返回的第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;
对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;
连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务。
可选地,对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表包括:
向第一连接列表中的每个连接节点发送探测数据包;
按照各个连接节点响应探测数据包返回回复数据包的时间进行排序,得到第二连接列表。
可选地,连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务包括:
创建多个线程;
按照第二连接列表中各连接节点的排序顺序,使用多个线程分别建立与第二连接列表中各连接节点的长连接,其中,与排序顺序相邻的两个连接节点建立长连接时,后一个连接节点对应线程的连接建立启动时间滞后于前一个连接节点对应线程的连接建立启动时间一预设时间段,且在该预设时间段内,前一个连接节点对应线程的连接建立任务仍在执行中;
将长连接建立成功的连接节点作为目标连接节点,并通过目标连接节点接受服务端提供的即时通讯服务。
可选地,所述方法还包括:
在成功建立长连接的情况下,依据连接建立信息更新第二连接列表;
将更新后的第二连接列表发送至服务端,以使服务端按照更新后的第二连接列表中各个连接节点的排序顺序更新各个连接节点与客户端的网络特征的匹配度。
根据本申请实施例的另一方面,本申请提供了一种即时通讯服务的调度装置,应用于服务端,包括:
节点列表发送模块,用于在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;
服务调度模块,用于在客户端连接至第二连接列表中的目标连接节点的情况下,通过目标连接节点为客户端提供即时通讯服务,其中,第二连接列表为客户端对第一连接列表中的连接节点进行实际连通质量探测后重新排序得到的。
根据本申请实施例的另一方面,本申请提供了一种即时通讯服务的调度装置,应用于客户端,包括:
服务请求发送模块,用于向服务端发送即时通讯服务请求;
节点列表接收模块,用于接收服务端响应即时通讯服务请求返回的第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照匹配度排序;
节点重排序模块,用于对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;
服务连接模块,用于连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请技术方案为服务端在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序。客户端对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表。在客户端连接至第二连接列表中的目标连接节点的情况下,服务端通过目标连接节点为客户端提供即时通讯服务。本申请首先从服务端的角度,为客户端筛选出一批符合客户端网络特征的连接节点,再从客户端的角度探测各个连接节点的实际连通质量,从而选择相对最优的一批连接节点去建联,提高即时通讯链路的连通率,解决了即时通讯链路的连通率较低的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的即时通讯服务的调度系统示意图;
图2为根据本申请实施例提供的一种应用于服务端可选的即时通讯服务的调度方法流程示意图;
图3为根据本申请实施例提供的一种应用于客户端可选的即时通讯服务的调度方法流程示意图;
图4为根据本申请实施例提供的一种可选的同步建连示意图;
图5为根据本申请实施例提供的一种应用于服务端可选的即时通讯服务的调度装置框图;
图6为根据本申请实施例提供的一种应用于客户端可选的即时通讯服务的调度装置框图;
图7为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种即时通讯服务的调度系统的实施例。
如图1所示,该即时通讯服务的调度系统包括:
服务端101,用于在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;在客户端连接至目标连接节点的情况下,通过目标连接节点为客户端提供即时通讯服务;
客户端103,用于向服务端发送即时通讯服务请求;接收服务端响应即时通讯服务请求返回的第一连接列表;对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务。
即时通讯服务在使用前,通常需要客户端请求服务端接口,服务端向客户端返回连接节点和端口,客户端根据连接节点和端口与服务端建立即时通讯链路。往往服务端会给客户端大量连接节点和端口,但并不是所有节点和端口都是可用的,甚至由于网络时延、连通质量等因素,大部分都是不可用的。相关技术中,为了提高通讯链路的连通率,服务端会在大量连接节点中筛选出连通率较高的节点发给客户端,但这种方式仅仅是在服务端的角度提供了服务端认为的最优节点,由于客户端方面的因素,服务端选择的连接节点可能并不是最适合客户端的节点。为此,本申请首先从服务端的角度,为客户端筛选出一批符合客户端网络特征的连接节点,再从客户端的角度探测各个连接节点的实际连通质量,从而选择相对最优的一批连接节点去建联,提高即时通讯链路的连通率。
本申请实施例中,服务端给客户端下发的连接节点包括两种,一种是服务端负载均衡设备的IP地址,一种是即时通讯服务长连接服务器的IP地址,为了分担服务端的压力,各连接节点相当于一级服务端的下属多个二级服务端,二级服务端将一级服务端的功能和数据分流,一级服务端和二级服务端可以是物理一体,逻辑分离的,如虚拟机,本机相当于一级服务端,搭载于本机上的虚拟机为二级服务端,从而通过虚拟机为用户提供服务。一级服务端和二级服务端也可以是物理分离的,如很常见的架设于一个地方的中心服务器、架设于多地的子服务器。
本申请实施例中,客户端向服务端发送即时通讯服务请求,以请求服务端开放即时通讯服务接口。服务端在接收到客户端的即时通讯服务请求的情况下,可以为客户端筛选出与客户端的网络特征匹配的连接节点,截取匹配度较高的连接节点并按照匹配度排序,得到第一连接列表。其中,客户端的网络特征可以是客户端与各个连接节点的网络时延,可以是客户端与各个连接节点的物理距离、网络距离,还可以是客户端与各个连接节点的历史连通率。服务端找出与客户端的网络特征匹配的节点,并按照匹配度排序得到第一连接列表可以是通过以下方式:
第一种,根据客户端的IP地址分析客户端所在地理位置,利用该地理位置确定客户端在哪一个蜂窝小区,最后选择客户端所在蜂窝小区的连接节点并按照距离客户端远近排序得到该第一连接列表,其中,蜂窝小区是GSM(Global System for MobileCommunications,全球移动通信系统)网获取位置信息来实现位置服务的主要定位技术,它通过采集移动台所处的小区识别号(Cell-ID号)来确定用户的位置。只要系统能够采集到移动台所在小区基站在地图上的地理位置,以及小区的覆盖半径,则当移动台在所处小区注册后,系统就会知道移动台处于哪一小区。
第二种,针对地理位置之间距离较近,而实际网络距离较远的节点,如用户接受本地运营商提供的服务,而该运营商的服务器却架设在海外,这样的连接节点数据传输缓慢,连通率较低。因此可以根据客户端的IP地址分析出与该IP地址网络距离相对较近的一批连接节点,具体可以是通过分析各个连接节点发出的数据需要经过多少网关才能到达该IP地址,经过的网关数量越少,客户端与连接节点之间的网络距离越近。最后按照网络距离的远近排序,得到第一连接列表。
第三种,将客户端的历史连通记录中的连接节点按照连通成功率排序,得到第一连接列表。这种方式是以历史经验为导向,在有大量数据支撑的情况下,该方式是效率最高且同样有效的节点选择方式。
第四种,客户端与各个连接节点的历史连通记录中记录有每次连接时客户端与连接节点的网络时延以及服务端与连接节点的网络时延。因此可以筛选出既与客户端网络时延较小且与服务端网络时延较小的连接节点,并按照综合时延的大小排序得到第一连接列表。
本申请实施例中,服务端得到第一连接列表后,将第一连接列表发送给客户端,客户端从自身出发,探测第一连接列表中各个节点实际的连通质量,从而重新排序得到第二连接列表,此时第二连接列表中即为实际情况下的最优连接列表,客户端根据第二连接列表中各连接节点的排序结果,选择目标连接节点建立长连接,以在长连接建立成功的情况下,通过目标连接节点接受服务端提供的即时通讯服务,其中,该目标连接节点可以一个或多个。
可选地,服务端101通过网络与客户端103进行连接,服务端101可用于为客户端103提供服务,如即时通讯服务。可在服务端101上或独立于服务端101设置数据库105,用于为服务端101提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,客户端可以是智能设备,也可以是安装在智能设备上的应用程序、小程序等。
本申请服务端根据客户端的网络特征筛选一批连接节点,客户端探测该批各个连接节点的实际连通质量,从而选择出最优的一批连接节点去建联,提高即时通讯链路的连通率,解决了即时通讯链路的连通率较低的问题。
根据本申请实施例的另一方面,本申请提供了一种即时通讯服务的调度方法,应用于服务端,如图2所示,该方法可以包括以下步骤:
步骤S202,在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序。
本申请实施例中,服务端给客户端下发的连接节点包括两种,一种是服务端负载均衡设备的IP地址,一种是即时通讯服务长连接服务器的IP地址,为了分担服务端的压力,各连接节点相当于一级服务端的下属多个二级服务端,二级服务端将一级服务端的功能和数据分流,一级服务端和二级服务端可以是物理一体,逻辑分离的,如虚拟机,本机相当于一级服务端,搭载于本机上的虚拟机为二级服务端,从而通过虚拟机为用户提供服务。一级服务端和二级服务端也可以是物理分离的,如很常见的架设于一个地方的中心服务器、架设于多地的子服务器。
本申请实施例中,客户端向服务端发送即时通讯服务请求,以请求服务端开放即时通讯服务接口。服务端在接收到客户端的即时通讯服务请求的情况下,可以为客户端筛选出与客户端的网络特征匹配的连接节点,截取匹配度较高的连接节点并按照匹配度排序,得到第一连接列表。其中,客户端的网络特征可以是客户端与各个连接节点的网络时延,可以是客户端与各个连接节点的物理距离、网络距离,还可以是客户端与各个连接节点的历史连通率,相应的,节点的网络时延越小,该节点与客户端的匹配度越高,节点的物理距离越近,该节点与客户端的匹配度越高,节点的网络距离越近,该节点与客户端的匹配度越高,节点与客户端的历史连通率越高,该节点与客户端的匹配度越高。
步骤S204,在客户端连接至第二连接列表中的目标连接节点的情况下,通过目标连接节点为客户端提供即时通讯服务,其中,第二连接列表为客户端对第一连接列表中的连接节点进行实际连通质量探测后重新排序得到的。
本申请实施例中,服务端将第一连接列表发送给客户端之后,客户端与目标连接节点建立长连接,该目标连接节点是该第一连接列表中的节点。此时服务端即可通过该目标连接节点为客户端提供即时通讯服务。上述第二连接列表,是客户端在接收到第一连接列表后,对第一连接列表中的各个连接节点进行实际的连通质量探测后对各个连接节点重新排序得到的,从而客户端可以根据第二连接列表选择更优的连接节点建立长连接,从而提高即时通讯链路的连通率,提升即时通讯服务的服务质量。
可选地,服务端在接收到客户端的即时通讯服务请求之后,还包括按照如下方式中的至少之一确定第一连接列表:
第一种,根据客户端的互联网协议地址确定客户端所在的目标地理位置;利用目标地理位置确定客户端所在的目标蜂窝小区;将预设在目标蜂窝小区中的连接节点按照与目标地理位置的距离进行排序,得到第一连接列表,其中,客户端的网络特征包括地理位置,匹配度包括距离。
本申请实施例中,服务端根据客户端的IP地址分析客户端所在地理位置,利用该地理位置确定客户端在哪一个蜂窝小区,最后选择客户端所在蜂窝小区的连接节点并按照距离客户端远近排序得到该第一连接列表,其中,蜂窝小区是GSM(Global System forMobile Communications,全球移动通信系统)网获取位置信息来实现位置服务的主要定位技术,它通过采集移动台所处的小区识别号(Cell-ID号)来确定用户的位置。只要系统能够采集到移动台所在小区基站在地图上的地理位置,以及小区的覆盖半径,则当移动台在所处小区注册后,系统就会知道移动台处于哪一小区。
第二种,针对地理位置之间距离较近,而实际网络距离较远的节点,如用户接受本地运营商提供的服务,而该运营商的服务器却架设在海外,这样的连接节点数据传输缓慢,连通率较低。因此可以根据客户端的IP地址分析出与该IP地址网络距离相对较近的一批连接节点,具体可以是通过分析各个连接节点发出的数据需要经过多少网关才能到达该IP地址,经过的网关数量越少,客户端与连接节点之间的网络距离越近。最后按照网络距离的远近排序,得到第一连接列表。
第三种,将客户端的历史连通记录中的连接节点按照连通成功率排序,得到第一连接列表,其中,客户端的网络特征包括历史连通节点,匹配度包括连通成功率。
本申请实施例中,服务端将客户端的历史连通记录中的连接节点按照连通成功率排序,得到第一连接列表。这种方式是以历史经验为导向,在有大量数据支撑的情况下,该方式是效率最高且同样有效的节点选择方式。
第四种,从客户端的历史连通记录中提取出与客户端的网络时延在第一阈值范围内的多个第一连接节点;从多个第一连接节点中,选择出与服务端的网络时延在第二阈值范围内的多个第二连接节点;按照客户端与多个第二连接节点的网络时延对多个第二连接节点进行排序,得到第一序列;按照服务端与多个第二连接节点的网络时延对多个第二连接节点进行排序,得到第二序列;按照预设位次阈值截取第一序列,得到第一目标序列,按照预设位次阈值截取第二序列,得到第二目标序列;将同时存在于第一目标序列和第二目标序列中的连接节点按照排位位次的数值之和进行排序,得到第一连接列表,其中,排位位次包括连接节点在第一目标序列中的排位位次和连接节点在第二目标序列中的排位位次,其中,客户端的网络特征包括网络时延,匹配度包括网络时延。
本申请实施例中,客户端与各个连接节点的历史连通记录中记录有每次连接时客户端与连接节点的网络时延以及服务端与连接节点的网络时延。因此服务端可以筛选出既与客户端网络时延较小且与服务端网络时延较小的连接节点,并按照综合时延的大小排序得到第一连接列表。服务端选取出与客户端网络时延较小的多个第一连接节点可以按照该第一阈值范围选取,如0至100ms,再按照该第二阈值范围从该多个第一连接节点中选取出与服务端网络时延较小的多个第二连接节点。此时得到的多个第二连接节点既满足与客户端的网络时延小于第一阈值范围,又满足与服务端的网络时延小于第二阈值范围,因此可以将两个网络时延相加作为综合时延进行排序,从而得到该第二连接列表。若是该第一阈值范围或第二阈值范围选取的数值较大,即为了获得更多连接节点,则为了进一步提升连通率,可以先按照与客户端的网络时延对该多个第一连接节点进行排序,得到该第一序列,按照与服务端的网络时延对该多个第二连接节点进行排序,得到该第二序列,再按照预设位次阈值截取第一序列和第二序列,得到第一目标序列和第二目标序列。该预设位次阈值可以根据实际需要进行设置,如设定为100,则分别从第一序列和第二序列中截取前100个连接节点。最后,将同时存在于第一目标序列和第二目标序列中的节点重新进行排序,如节点A在第一目标序列中,而不在第二目标序列中,则不排序,节点B在第一目标序列中排位第一,在第二目标序列中排位第一,则节点B的排位位次数值之和为2,此为最小的综合排位位次数值了,因此节点B在第二连接列表中排位第一。
可选地,通过目标连接节点为客户端提供即时通讯服务之后,所述方法还包括:
接收客户端发送的第二连接列表;
按照第二连接列表中各个连接节点的排序顺序,更新各个连接节点与客户端的网络特征的匹配度。
本申请实施例中,第二连接列表,是客户端在接收到第一连接列表后,对第一连接列表中的各个连接节点进行实际的连通质量探测后对各个连接节点重新排序得到的,反映的是更加符合实际情况的连接节点排序,因此服务端可以接收第二连接列表后,按照第二连接列表中各个连接节点的排序顺序,更新存储在服务端中各个连接与客户端的匹配度,从而在客户端下次请求即时通讯服务时,可以为客户端提供更加匹配的连接节点。
本申请实施例中,服务端还可以根据更新后的匹配度为与该客户端的网络特征相似的其他客户端提供连接节点,如同一个小区的其他客户端、同属一个局域网下的其他客户端等请求即时通讯服务时,服务端可以更快速、更精准的筛选出匹配度更高的连接节点。
根据本申请实施例的另一方面,本申请提供一种即时通讯服务的调度方法,应用于客户端,如图3所示,该方法可以包括以下步骤:
步骤S302,向服务端发送即时通讯服务请求;
步骤S304,接收服务端响应即时通讯服务请求返回的第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;
步骤S306,对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;
步骤S308,连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务。
本申请实施例中,客户端接收到服务端返回的第一连接列表后,根据客户端的角度,来探测发现真正的最优列表。
可选地,探测的方式可以是:
向第一连接列表中的每个连接节点发送探测数据包;
按照各个连接节点响应探测数据包返回回复数据包的时间进行排序,得到第二连接列表。
本申请实施例中,客户端可以向每个节点发送ping信息,根据pong的返回时间来决定优劣,从而对各个节点重新排序,得到第二连接列表。Ping-pong实质是一种数据缓冲的手段(是一种数据传输技术),能够同时利用两个数据缓冲区达到数据连续传输的目的,从而提高数据传输速率。由于单个缓冲区得到的数据在传输和处理中很容易被覆盖,而Ping-pong缓冲区的方式能够总是保持一个缓冲区的数据被利用,另一个缓冲去用于存储数据。即两个相同的对象作为缓冲区交替地被读和被写,因此,本申请采用Ping-pong缓冲机制,可以实现高并发下的高效率运行,即客户端可以同时向多个节点发送数据而无需等待一个节点响应即可继续执行下一个节点的探测任务。
本申请还提供了一种同步建连的执行策略,能够大幅度减少客户端建立与连接节点的长连接的时间。
相关技术中,客户端请求服务端接口,由服务端返回JSON格式的IP列表,每个IP节点中,包含了IP地址、端口、重连次数及连接超时时间等信息,此时由客户端采用第一个IP进行连接,当连接失败后,则根据重连次数反复进行重试连接,当第一个IP超过重连次数,即连接失败后,则采用第二个IP进行连接,依次类推,当所有IP连接失败,则重新循环,重新采用第一个IP进行连接。这样的形式为跑马灯形式,每个IP在连接时,均有自己的超时时间,及重连次数,由于IP有多个,当网络情况不好时,连接的次数会变的较长,较大的影响用户的体验。
可选地,本申请提供的同步建连的执行策略,包括以下步骤:
步骤1,创建多个线程。
本申请实施例中,可以在一个建连进程中创建多个线程,从而并行执行不同节点的建连任务。
步骤2,按照第二连接列表中各连接节点的排序顺序,使用多个线程分别建立与第二连接列表中各连接节点的长连接,其中,与排序顺序相邻的两个连接节点建立长连接时,后一个连接节点对应线程的连接建立启动时间滞后于前一个连接节点对应线程的连接建立启动时间一预设时间段,且在该预设时间段内,前一个连接节点对应线程的连接建立任务仍在执行中。
本申请实施例中,上述第二连接列表已经是从服务端和客户端的角度得出的最优节点列表,因此可以按照第二连接列表中个节点的顺序开始建连,排序越靠前的节点连接成功率越高,因此可以按照第二连接列表的顺序建连。
本申请实施例中,如图4所示,同步建连的执行策略为不完全同步,即排序顺序相邻的两个连接节点建立长连接时,后一个连接节点对应线程的连接建立启动时间滞后于前一个连接节点对应线程的连接建立启动时间一预设时间段,需要说明的是,后一个连接节点对应线程的连接建立启动时间滞后于前一个连接节点对应线程的连接建立启动时间一预设时间段,并不是前一个连接节点经过等待、失败、重连、超重连次数后才对后一个连接节点建连。本申请中,该预设时间段设置为相比正常建连时间更短的一个较小时间段,至少应小于上一次建连操作中的最短的建连时间,使得前一个连接节点的建连任务还在执行中的情况下,启动后一个连接节点的建连任务。
并且,因为在同一时刻,针对同一机房的网络环境,节点存在同时连上和同时连不上情况,即,一个节点连不上,在同时另外一个节点几乎也连不上。因此,错开时间去连,能够提升连接的成功率,如在第0秒时,采用一个线程,根据第一个节点的IP和端口号port1去建立连接,在第4秒时,由另外一个线程,根据第二个节点的IP和端口号port2去建立连接。错开建连的启动时间,还能够减少服务端连接句柄的飙升,因为每条连接都会占用不同的服务端句柄,当并发量过大时,对服务端是一个不小的压力。
本申请实施例中,存在连接失败的线程时,继续通过当前线程在预设时间段重新连接对应的连接节点,直至重连次数达到次数阈值时停止连接。在某个线程的连接节点连接失败后,仍然采用其分别原有的线程,错峰进行重试,既不影响其他线程的建连任务,也通过错峰重试,减少了高并发下客户端和服务端的压力。该预设时间段可以根据实际需要进行设置,如设置为低峰期等。该重连的次数阈值同样可以根据实际需要进行设置。另外,达到重连次数,还可以在网络发生变化后,再进行尝试,如用户切换了连接的WiFi,或者从WiFi切换到了蜂窝移动数据等情况,再次进行重连。
步骤3,将长连接建立成功的连接节点作为目标连接节点,并通过目标连接节点接受服务端提供的即时通讯服务。
由于网络的不确定性,以上线程在采用不同节点进行连接时,连接成功存在一定的随机性,即首先进行连接的并不一定能够在第一个连接成功,采用此方法后,由于是并行执行,哪个节点连上就使用哪个,尽可能的节约了连接成功达到可用的时间,提升了用户体验。
本申请实施例中,若首先建连的仅一个节点,则直接将该节点作为目标连接节点即可。若是发生极端情况,如同一时间成功建连的有多个节点,则还需要从该多个节点中选出一个目标连接节点。选择方式可以是随机选择,可以按照第二连接列表中的节点排序顺序择优选择,还可以根据节点的响应时间来选择。另外,若需要选择多个目标连接节点来供多个线程同时执行数据传输任务,则也可以按照上述选择节点的方式挑选出所需的目标连接节点。
可选地,所述方法还包括:
在成功建立长连接的情况下,依据连接建立信息更新第二连接列表;
将更新后的第二连接列表发送至服务端,以使服务端按照更新后的第二连接列表中各个连接节点的排序顺序更新各个连接节点与客户端的网络特征的匹配度。
本申请实施例中,客户端根据实际建连的情况再次更新第二连接列表,如原第二连接列表中的部分节点排序结果是A、B、C,而本次通过节点B首先建连成功,则根据本次建连的情况将第二连接列表更新为B、A、C。这样根据实际建连结果实时更新第二连接列表,能够最准确的反映各个节点的实际情况。更新后再将第二连接列表发送至服务端,以使服务端按照更新后的第二连接列表中各个连接节点的排序顺序更新各个连接节点与客户端的网络特征的匹配度。
根据本申请实施例的又一方面,如图5所示,提供了一种即时通讯服务的调度装置,应用于服务端,包括:
节点列表发送模块501,用于在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;
服务调度模块503,用于在客户端连接至第二连接列表中的目标连接节点的情况下,通过目标连接节点为客户端提供即时通讯服务,其中,第二连接列表为客户端对第一连接列表中的连接节点进行实际连通质量探测后重新排序得到的。
需要说明的是,该实施例中的节点列表发送模块501可以用于执行本申请实施例中的步骤S202,该实施例中的服务调度模块503可以用于执行本申请实施例中的步骤S204。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的即时通讯服务的调度系统中,可以通过软件实现,也可以通过硬件实现。
可选地,该即时通讯服务的调度装置,还包括节点选择模块,用于通过以下方式中的至少之一确定第一连接列表:
根据客户端的互联网协议地址确定客户端所在的目标地理位置;利用目标地理位置确定客户端所在的目标蜂窝小区;将预设在目标蜂窝小区中的连接节点按照与目标地理位置的距离进行排序,得到第一连接列表,其中,客户端的网络特征包括地理位置,匹配度包括距离;
将客户端的历史连通记录中的连接节点按照连通成功率排序,得到第一连接列表,其中,客户端的网络特征包括历史连通节点,匹配度包括连通成功率;
从客户端的历史连通记录中提取出与客户端的网络时延在第一阈值范围内的多个第一连接节点;从多个第一连接节点中,选择出与服务端的网络时延在第二阈值范围内的多个第二连接节点;按照客户端与多个第二连接节点的网络时延对多个第二连接节点进行排序,得到第一序列;按照服务端与多个第二连接节点的网络时延对多个第二连接节点进行排序,得到第二序列;按照预设位次阈值截取第一序列,得到第一目标序列,按照预设位次阈值截取第二序列,得到第二目标序列;将同时存在于第一目标序列和第二目标序列中的连接节点按照排位位次的数值之和进行排序,得到第一连接列表,其中,排位位次包括连接节点在第一目标序列中的排位位次和连接节点在第二目标序列中的排位位次,其中,客户端的网络特征包括网络时延,匹配度包括网络时延。
可选地,该即时通讯服务的调度装置,还包括节点匹配度更新模块,用于:
接收客户端发送的第二连接列表;
按照第二连接列表中各个连接节点的排序顺序,更新各个连接节点与客户端的网络特征的匹配度。
根据本申请实施例的又一方面,如图6所示,提供了一种即时通讯服务的调度装置,应用于客户端,包括:
服务请求发送模块601,用于向服务端发送即时通讯服务请求;
节点列表接收模块603,用于接收服务端响应即时通讯服务请求返回的第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照匹配度排序;
节点重排序模块605,用于对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;
服务连接模块607,用于连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务。
需要说明的是,该实施例中的服务请求发送模块601可以用于执行本申请实施例中的步骤S302,该实施例中的节点列表接收模块603可以用于执行本申请实施例中的步骤S304,该实施例中的节点重排序模块605可以用于执行本申请实施例中的步骤S306,该实施例中的服务连接模块607可以用于执行本申请实施例中的步骤S308。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的即时通讯服务的调度系统中,可以通过软件实现,也可以通过硬件实现。
可选地,该即时通讯服务的调度装置,还包括连通质量探测模块,用于:
向第一连接列表中的每个连接节点发送探测数据包;
按照各个连接节点响应探测数据包返回回复数据包的时间进行排序,得到第二连接列表。
可选地,该即时通讯服务的调度装置,还包括同步建连模块,用于:
创建多个线程;
按照第二连接列表中各连接节点的排序顺序,使用多个线程分别建立与第二连接列表中各连接节点的长连接,其中,与排序顺序相邻的两个连接节点建立长连接时,后一个连接节点对应线程的连接建立启动时间滞后于前一个连接节点对应线程的连接建立启动时间一预设时间段,且在该预设时间段内,前一个连接节点对应线程的连接建立任务仍在执行中;
将长连接建立成功的连接节点作为所述目标连接节点,并通过所述目标连接节点接受所述服务端提供的即时通讯服务。
可选地,该即时通讯服务的调度装置,还包括节点更新模块,用于:
在成功建立长连接的情况下,依据连接建立信息更新第二连接列表;
将更新后的第二连接列表发送至服务端,以使服务端按照更新后的第二连接列表中各个连接节点的排序顺序更新各个连接节点与客户端的网络特征的匹配度。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图7所示,包括存储器701、处理器703、通信接口705及通信总线707,存储器701中存储有可在处理器703上运行的计算机程序,存储器701、处理器703通过通信接口705和通信总线707进行通信,处理器703执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例的步骤。
可选地,在本申请实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
在接收到客户端的即时通讯服务请求的情况下,向客户端返回第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照服务端确定的匹配度排序;
在客户端连接至第二连接列表中的目标连接节点的情况下,通过目标连接节点为客户端提供即时通讯服务,其中,第二连接列表为客户端对第一连接列表中的连接节点进行实际连通质量探测后重新排序得到的。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可选地,在本申请实施例中,计算机可读介质还可被设置为存储用于所述处理器执行以下步骤的程序代码:
向服务端发送即时通讯服务请求;
接收服务端响应即时通讯服务请求返回的第一连接列表,其中,第一连接列表中记录有与客户端的网络特征匹配的多个连接节点,多个连接节点按照匹配度排序;
对第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;
连接至第二连接列表中的目标连接节点,以接受服务端提供的即时通讯服务可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种即时通讯服务的调度系统,其特征在于,包括:
服务端,用于在接收到客户端的即时通讯服务请求的情况下,向所述客户端返回第一连接列表,其中,所述第一连接列表中记录有与所述客户端的网络特征匹配的多个连接节点,所述多个连接节点按照所述服务端确定的匹配度排序;在所述客户端连接至目标连接节点的情况下,通过所述目标连接节点为所述客户端提供即时通讯服务;
客户端,用于向服务端发送即时通讯服务请求;接收所述服务端响应所述即时通讯服务请求返回的所述第一连接列表;对所述第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;连接至所述第二连接列表中的所述目标连接节点,以接受所述服务端提供的即时通讯服务。
2.一种即时通讯服务的调度方法,应用于服务端,其特征在于,包括:
在接收到客户端的即时通讯服务请求的情况下,向所述客户端返回第一连接列表,其中,所述第一连接列表中记录有与所述客户端的网络特征匹配的多个连接节点,所述多个连接节点按照所述服务端确定的匹配度排序;
在所述客户端连接至第二连接列表中的目标连接节点的情况下,通过所述目标连接节点为所述客户端提供即时通讯服务,其中,所述第二连接列表为所述客户端对所述第一连接列表中的连接节点进行实际连通质量探测后重新排序得到的。
3.根据权利要求2所述的方法,其特征在于,接收客户端的即时通讯服务请求之后,所述方法还包括按照如下方式中的至少之一确定所述第一连接列表:
根据所述客户端的互联网协议地址确定所述客户端所在的目标地理位置;利用所述目标地理位置确定所述客户端所在的目标蜂窝小区;将预设在所述目标蜂窝小区中的连接节点按照与所述目标地理位置的距离进行排序,得到所述第一连接列表,其中,所述客户端的所述网络特征包括地理位置,所述匹配度包括距离;
将所述客户端的历史连通记录中的连接节点按照连通成功率排序,得到所述第一连接列表,其中,所述客户端的所述网络特征包括历史连通节点,所述匹配度包括连通成功率;
从所述客户端的历史连通记录中提取出与所述客户端的网络时延在第一阈值范围内的多个第一连接节点;从所述多个第一连接节点中,选择出与服务端的网络时延在第二阈值范围内的多个第二连接节点;按照所述客户端与所述多个第二连接节点的网络时延对所述多个第二连接节点进行排序,得到第一序列;按照所述服务端与所述多个第二连接节点的网络时延对所述多个第二连接节点进行排序,得到第二序列;按照预设位次阈值截取所述第一序列,得到第一目标序列,按照所述预设位次阈值截取所述第二序列,得到第二目标序列;将同时存在于所述第一目标序列和所述第二目标序列中的连接节点按照排位位次的数值之和进行排序,得到所述第一连接列表,其中,所述排位位次包括所述连接节点在所述第一目标序列中的排位位次和所述连接节点在所述第二目标序列中的排位位次,其中,所述客户端的所述网络特征包括网络时延,所述匹配度包括网络时延。
4.根据权利要求3所述的方法,其特征在于,通过所述目标连接节点为所述客户端提供即时通讯服务之后,所述方法还包括:
接收所述客户端发送的所述第二连接列表;
按照所述第二连接列表中各个连接节点的排序顺序,更新所述各个连接节点与所述客户端的所述网络特征的匹配度。
5.一种即时通讯服务的调度方法,应用于客户端,其特征在于,包括:
向服务端发送即时通讯服务请求;
接收所述服务端响应所述即时通讯服务请求返回的第一连接列表,其中,所述第一连接列表中记录有与所述客户端的网络特征匹配的多个连接节点,所述多个连接节点按照所述服务端确定的匹配度排序;
对所述第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;
连接至所述第二连接列表中的目标连接节点,以接受所述服务端提供的即时通讯服务。
6.根据权利要求5所述的方法,其特征在于,对所述第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表包括:
向所述第一连接列表中的每个连接节点发送探测数据包;
按照各个连接节点响应所述探测数据包返回回复数据包的时间进行排序,得到所述第二连接列表。
7.根据权利要求5所述的方法,其特征在于,连接至所述第二连接列表中的目标连接节点,以接受所述服务端提供的即时通讯服务包括:
创建多个线程;
按照所述第二连接列表中各连接节点的排序顺序,使用所述多个线程分别建立与所述第二连接列表中各连接节点的长连接,其中,与排序顺序相邻的两个连接节点建立长连接时,后一个连接节点对应线程的连接建立启动时间滞后于前一个连接节点对应线程的连接建立启动时间一预设时间段,且在该预设时间段内,前一个连接节点对应线程的连接建立任务仍在执行中;
将长连接建立成功的连接节点作为所述目标连接节点,并通过所述目标连接节点接受所述服务端提供的即时通讯服务。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在成功建立所述长连接的情况下,依据连接建立信息更新所述第二连接列表;
将更新后的所述第二连接列表发送至服务端,以使服务端按照更新后的所述第二连接列表中各个连接节点的排序顺序更新所述各个连接节点与所述客户端的所述网络特征的匹配度。
9.一种即时通讯服务的调度装置,应用于服务端,其特征在于,包括:
节点列表发送模块,用于在接收到客户端的即时通讯服务请求的情况下,向所述客户端返回第一连接列表,其中,所述第一连接列表中记录有与所述客户端的网络特征匹配的多个连接节点,所述多个连接节点按照所述服务端确定的匹配度排序;
服务调度模块,用于在所述客户端连接至第二连接列表中的目标连接节点的情况下,通过所述目标连接节点为所述客户端提供即时通讯服务,其中,所述第二连接列表为所述客户端对所述第一连接列表中的连接节点进行实际连通质量探测后重新排序得到的。
10.一种即时通讯服务的调度装置,应用于客户端,其特征在于,包括:
服务请求发送模块,用于向服务端发送即时通讯服务请求;
节点列表接收模块,用于接收所述服务端响应所述即时通讯服务请求返回的第一连接列表,其中,所述第一连接列表中记录有与所述客户端的网络特征匹配的多个连接节点,所述多个连接节点按照所述服务端确定的匹配度排序;
节点重排序模块,用于对所述第一连接列表中的连接节点进行实际连通质量探测,并重新排序得到第二连接列表;
服务连接模块,用于连接至所述第二连接列表中的目标连接节点,以接受所述服务端提供的即时通讯服务。
11.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求2至4或5至8任一项所述的方法的步骤。
12.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求2至4或5至8任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111165004.1A CN113923195A (zh) | 2021-09-30 | 2021-09-30 | 即时通讯服务的调度系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111165004.1A CN113923195A (zh) | 2021-09-30 | 2021-09-30 | 即时通讯服务的调度系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113923195A true CN113923195A (zh) | 2022-01-11 |
Family
ID=79237869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111165004.1A Pending CN113923195A (zh) | 2021-09-30 | 2021-09-30 | 即时通讯服务的调度系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923195A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796387A (zh) * | 2014-01-21 | 2015-07-22 | 腾讯科技(深圳)有限公司 | 一种网络长连接的通信方法及装置 |
US20160132608A1 (en) * | 2016-01-29 | 2016-05-12 | Yogesh Rathod | Enable user to establish request data specific connections with other users of network(s) for communication, participation & collaboration |
CN109274584A (zh) * | 2018-09-28 | 2019-01-25 | 乐蜜有限公司 | 接入服务器的接入方法、装置、客户端设备及存储介质 |
CN109660411A (zh) * | 2019-02-25 | 2019-04-19 | 北京云中融信网络科技有限公司 | 一种优化即时通信网络链路连接的方法及装置 |
CN112153170A (zh) * | 2020-09-15 | 2020-12-29 | 广州华多网络科技有限公司 | 访问服务器的方法、装置、设备及存储介质 |
-
2021
- 2021-09-30 CN CN202111165004.1A patent/CN113923195A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796387A (zh) * | 2014-01-21 | 2015-07-22 | 腾讯科技(深圳)有限公司 | 一种网络长连接的通信方法及装置 |
US20160132608A1 (en) * | 2016-01-29 | 2016-05-12 | Yogesh Rathod | Enable user to establish request data specific connections with other users of network(s) for communication, participation & collaboration |
CN109274584A (zh) * | 2018-09-28 | 2019-01-25 | 乐蜜有限公司 | 接入服务器的接入方法、装置、客户端设备及存储介质 |
CN109660411A (zh) * | 2019-02-25 | 2019-04-19 | 北京云中融信网络科技有限公司 | 一种优化即时通信网络链路连接的方法及装置 |
CN112153170A (zh) * | 2020-09-15 | 2020-12-29 | 广州华多网络科技有限公司 | 访问服务器的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106302434B (zh) | 服务器适配方法、装置和系统 | |
CN107483260B (zh) | 故障处理方法及装置、电子设备 | |
EP3336695B1 (en) | Method and device for reloading system service | |
CN110519409B (zh) | 域名动态配置方法、装置、设备及存储介质 | |
CN110267314B (zh) | 切换网络切片的方法及装置 | |
CN109561054B (zh) | 一种数据传输方法、控制器及接入设备 | |
CN112202918B (zh) | 长连接通信的负载调度方法、装置、设备及存储介质 | |
CN108200567B (zh) | 一种设备发现方法及设备 | |
CN110753091A (zh) | 一种云平台管理方法和装置 | |
CN109451063B (zh) | 一种服务器热备方法和系统 | |
CN110784549A (zh) | 网络节点选择方法、装置、第一网络节点及存储介质 | |
CN111669285A (zh) | 一种网络检测数据的处理方法、系统和存储介质 | |
CN111093182B (zh) | 一种用于cpe设备的网络最优资源选择系统 | |
CN112671813B (zh) | 服务器确定方法、装置、设备及存储介质 | |
CN108089934B (zh) | 集群管理方法及集群服务器 | |
US20160088184A1 (en) | Image forming apparatus, processing method, and non-transitory computer readable medium | |
CN110380981B (zh) | 一种流量分发方法及设备 | |
US20170257323A1 (en) | Mail Obtaining Method, Terminal, and System | |
CN110535959B (zh) | 一种传输数据的方法、装置和计算机可读存储介质 | |
CN113923195A (zh) | 即时通讯服务的调度系统和方法 | |
CN110661836B (zh) | 消息路由方法、装置及系统、存储介质 | |
CN111385324A (zh) | 一种数据通信方法、装置、设备和存储介质 | |
CN111526220B (zh) | 一种高并发环境下处理信息的方法及系统 | |
CN111935029B (zh) | 网关负载均衡方法和装置、存储介质及电子设备 | |
CN113746725B (zh) | 多网关环境下的网关选择方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |