一种分组管理客户端连接方法以及系统技术方案

技术编号:34433718 阅读:22 留言:0更新日期:2022-08-06 16:14
本申请公开了一种分组管理客户端连接方法以及系统,属于网络通信技术领域,分组管理客户端连接方法通过预先按照组织架构对同一内网中所有的客户端进行分组,并且对应每个分组分别设置一个连接池,当请求客户端需要向目标客户端转发消息时,可以优先在请求客户端所在分组对应的连接池中遍历目标客户端,这样,遍历到客户端数量基数大幅减少并且遍历到目标客户端的几率也大幅度增大,可以提升遍历的效率,提升消息转发的速度,无需遍历较多无关联的客户端还可以减少遍历过程中CPU的性能消耗,并且,本申请通过设置多个连接池,能处理的客户端连接数上限也得到了提升。客户端连接数上限也得到了提升。客户端连接数上限也得到了提升。

【技术实现步骤摘要】
一种分组管理客户端连接方法以及系统


[0001]本专利技术属于网络通信
,尤其涉及一种分组管理客户端连接方法以及系统。

技术介绍

[0002]早期为了实现消息推送,是通过客户端进行轮询,即每隔一定的时间,由客户端主动对服务端发送HTTP请求,然后服务端返回最新数据,但这有比较明显的缺点,就是大部分请求都是没有作用,这会浪费大量的带宽等资源。
[0003]现在的普遍做法是使用websocket或者自定义协议,让客户端与服务端之间保持一个长连接,客户端通过监听连接推送的数据,在服务端这些连接会保存在连接池中,但连接池大小并不是无限的,由于客户端有可能一直开着不关闭,会一直占用着连接池的空间,当连接池容量满了之后,新连接就无法接入服务端了,另外,如果连接池里如果有大量连接,当两个客户端需要进行连接或服务端需要给特定的客户端推送消息数据时,需要在有大量连接的连接池中遍历对应的目标客户端进行连接,这样会消耗较多的CPU性能,并且连接效率也较低。

技术实现思路

[0004](一)专利技术目的为了克服以上不足,本专利技术的目的在于提供一种分组管理客户端连接方法以及系统,以解决现有的连接池容量有限无法存放大量的连接以及遍历目标客户端时需要在连接池中大量遍历无关的客户端,会消耗较多的CPU性能,并且连接效率也较低的技术问题。
[0005](二)技术方案为实现上述目的,本申请一方面提供的技术方案如下:一种分组管理客户端连接方法,包括以下步骤:按照组织架构对所有客户端进行分组;基于每个分组分别创建一个对应的连接池;在接收到需要转发消息的请求客户端的请求指令后在该请求客户端所属分组的连接池中遍历需要接收该消息的目标客户端;若在请求客户端所属分组的连接池中遍历到目标客户端,将请求客户端与目标客户端进行通信连接;否则,在其他分组的连接池中遍历目标客户端并且在遍历到目标客户端后将请求客户端与目标客户端进行通信连接;本申请通过预先按照组织架构对同一内网中所有的客户端进行分组,并且对应每个分组分别设置一个连接池,当请求客户端需要向目标客户端转发消息时,可以优先在请求客户端所在分组对应的连接池中遍历目标客户端,这样,遍历到客户端数量基数大幅减少并且遍历到目标客户端的几率也大幅度增大,可以提升遍历的效率,提升消息转发的速
度,无需遍历较多无关联的客户端还可以减少遍历过程中CPU的性能消耗,并且,本申请通过设置多个连接池,能处理的客户端连接数上限也得到了提升。
[0006]进一步的,还包括:若在所有的连接池中均没有遍历到目标客户端,按组织架构将该目标客户端新加入到对应的分组中并且重新在对应的连接池中遍历目标客户端;在所有连接池中均没有遍历到目标客户端时,表示该目标客户端是新用户,此时需要按组织架构对新用户进行分组并且分配到对应的连接池,分组后,下次连接过程中可以在对应的连接池中直接遍历到该目标客户端。
[0007]进一步的,按照组织架构对所有客户端进行分组包括:若所有的客户端均属于同一个组织架构,按不同客户端所在的通信群组对所有客户端进行分组;当所有客户端都属于同一个组织架构,可以按照客户端所在的通信群组对客户端进行分组,由于通信群组是客户端经常进行连接并且通信的,按通信群组对客户端进行分组,可以提高遍历到目标客户端的几率。
[0008]进一步的,按客户端所在的通信群组对客户端进行分组包括:若同一客户端同时处于多个群组内,按客户端数量最多的通信群组进行分组;按照客户端数量最多的通信群组进行分组,同一连接池中所包含的需要进行连接的客户端数量就会较多,避免遍历过程中需要频繁在不同的连接池中来回切换进行遍历,进一步提升连接的效率。
[0009]进一步的,按客户端所在的通信群组对客户端进行分组包括:若存在没有加入过任何通信群组的客户端,将客户端加入到与其有过通信连接的客户端所属的分组内;按照将客户端的连接记录将没有加入过通信群组的客户端进行分组,可以将目标客户端分配到包含与其进行经常进行连接的客户端的连接池中,再下一次进行连接时,提升了遍历到目标客户端的几率,进一步提升连接的效率。
[0010]进一步的,服务器推送消息时,在需要接收该推送消息的目标客户端所在的连接池中遍历目标客户端,通过按分组在对应的连接池中遍历目标客户端并且进行消息推送,可以提升消息推送的效率。
[0011]本专利技术的另一方面提供了一种分组管理客户端连接系统,包括:分组模块,能够按照组织架构对所有客户端进行分组;创建模块,能够基于每个分组分别创建一个对应的连接池;遍历模块,能够在接收到需要转发消息的请求客户端的请求指令后在请求客户端所属分组的连接池中遍历需要接收该消息的目标客户端;连接模块,若遍历模块在请求客户端所属分组的连接池中遍历到目标客户端,将请求客户端与目标客户端进行通信连接;或者,遍历模块在其他分组的连接池中遍历到目标客户端,将请求客户端与目标客户端进行通信连接。
[0012]进一步地,还包括:添加模块,若遍历模块在所有的连接池中均没有遍历到目标客户端,按组织架构将该目标客户端新加入到对应的分组中。
[0013]进一步地,分组模块包括:第一分组子模块,若所有的客户端均属于同一个组织架构,按不同客户端所在的通信群组对所有客户端进行分组;第二分组子模块,若同一客户端同时处于多个群组内,按客户端数量最多的通信
群组进行分组;第三分组子模块,若存在没有加入过任何通信群组的客户端,将客户端加入到与其有过通信连接的客户端所属的分组内。
[0014]进一步地,还包括:在服务器推送消息时,遍历模块还用于在需要接收该推送消息的目标客户端所在的连接池中遍历目标客户端。
附图说明
[0015]图1是本专利技术的分组管理客户端连接方法的流程图;图2是本专利技术的分组管理客户端连接方法连接过程的流程图。
具体实施方式
[0016]为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。
[0017]请参阅图1,本专利技术提供的一种分组管理客户端连接方法,包括以下步骤:按照组织架构对所有客户端进行分组;服务器基于每个分组分别创建一个对应的连接池;客户端登陆后创建连接,向服务器发送需要转发的消息以及请求指令,服务器在接收到转发的消息以及请求指令后在包含该请求客户端所属分组的连接池中遍历需要接收该消息的目标客户端;若在请求客户端所属分组的连接池中遍历到目标客户端,将请求客户端与目标客户端进行通信连接;否则,在其他分组的连接池中遍历目标客户端并且在遍历到目标客户端后将请求客户端与目标客户端进行通信连接。
[0018]具体的,上述的按照组织架构对所有客户端进行分组具体可以按科室、按部门、按公司等等的其中一种架构作为一个组织架构进行划分,不同的使用场景划分的粗粒度不同。
[0019]具体的,在按照组织架构对所有客户端进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分组管理客户端连接方法,其特征在于,包括以下步骤:按照组织架构对所有客户端进行分组;基于每个分组分别创建一个对应的连接池;在接收到需要转发消息的请求客户端的请求指令后在该请求客户端所属分组的连接池中遍历需要接收该消息的目标客户端;若在请求客户端所属分组的连接池中遍历到所述目标客户端,将所述请求客户端与所述目标客户端进行通信连接;否则,在其他分组的连接池中遍历所述目标客户端并且在遍历到所述目标客户端后将所述请求客户端与所述目标客户端进行通信连接。2.根据权利要求1所述的分组管理客户端连接方法,其特征在于,还包括:若在所有的连接池中均没有遍历到所述目标客户端,按组织架构将该目标客户端新加入到对应的分组中并且重新在对应的连接池中遍历所述目标客户端。3.根据权利要求1所述的分组管理客户端连接方法,其特征在于,所述按照组织架构对所有客户端进行分组包括:若所有的客户端均属于同一个组织架构,按不同客户端所在的通信群组对所有客户端进行分组。4.根据权利要求3所述的分组管理客户端连接方法,其特征在于,所述按客户端所在的通信群组对客户端进行分组包括:若同一客户端同时处于多个群组内,按客户端数量最多的通信群组进行分组。5.根据权利要求3或4所述的分组管理客户端连接方法,其特征在于,所述按客户端所在的通信群组对客户端进行分组包括:若存在没有加入过任何通信群组的客户端,将客户端加入到与其有过通信连接的客户端所属的分组内。6.根据权利要求1所述的分组管理客户端连接方法,其特征在于,还包括:服务器推送消息时,...

【专利技术属性】
技术研发人员:王伟聪闵宇黄衍博
申请(专利权)人:广东睿江云计算股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1