基于WebSocket的业务分发器及优化WebSocket连接的方法与流程

未命名 10-18 阅读:139 评论:0

基于websocket的业务分发器及优化websocket连接的方法
技术领域
1.本发明涉及网络通信技术领域,更具体地,涉及一种基于websocket的业务分发器及优化websocket连接的方法。


背景技术:

2.随着互联网时代的飞速发展,越来越多的互联网技术被服务于民生领域,诞生出了千千万万种给人民工作生活带来极大便捷的应用服务。其中应用服务大都采用http协议通信,此协议区分为客户端与服务端,两端之间采用单工通信的方式,即只能由客户端请求服务端,而服务端无法主动与客户端保持通信。这就导致无法满足两端之间点对点的即时通信功能,在实现客户端与服务端的数据同步时,通常是通过定时的轮询增加带宽资源来实现,往往需要付出较大的代价,而这时websocket就基于此应运而生,其可以保持客户端与服务端的持续长连接,以较小的代价实现两端之间的通信,而基于websocket的根据业务逻辑进行分组分发分别处理的组件的开发就显得极为重要。
3.目前市场上大部分的pc端应用是基于c/s模式与b/s模式开发而成,而互联网的不断发展,web的兴起犹如一匹黑马,使得其中的b/s即浏览器/服务器这种方便快捷的模式成为了其中的独角兽,市场占有量远超c/s,搭载在b/s上的websocket也被越来越多的应用开发者使用,其以更小的开销,更强的实时性,更好的多元支持而深受应用开发者的喜爱;其节约资源、稳定、健壮以及可扩展的特性使得它极具不可替代性。
4.然而,现有技术的服务端通过websocket与客户端通信时,通常需要开发人员单独开发与每个从应用程序相匹配的业务逻辑代码,并处理相应的权限广播人员的判断,工作量较大,耗费大量人力资源,导致业务分发效率较低;其次,由于多个从应用程序的业务代码耦合在一起,当一个从应用程序的业务逻辑代码出现错误时,势必会影响其他应用程序的运行。


技术实现要素:

5.针对背景技术部分提到的现有技术中的至少一个缺陷或改进需求,本发明提供了一种基于websocket的业务分发器及优化websocket连接的方法,至少用以提升服务端通过websocket与客户端建立通信连接的效率。
6.为实现上述目的,第一方面,本发明提供了一种基于websocket的业务分发器,包括:
7.控制器,用于对调用websocket的客户端进行连接权限的判断;
8.业务器,用于在所述控制器判断为具有连接权限时,根据业务逻辑对业务进行分层分解以形成业务拓扑树,并进行用户权限与域权限的判断;
9.广播器,用于基于所述业务器所判断出的用户权限与域权限筛选出需要广播通信的客户端;
10.频次器,用于基于所述广播通信的连接频次对此次通信连接做时限限制。
11.进一步地,所述业务器由所述业务拓扑树的根节点出发,根据业务大小,关联进行分层分级,并可根据业务特点为每个拓扑分支的每个节点命名。
12.进一步地,所述广播通信包括私人广播通信和群体广播通信;
13.所述私人广播通信为与单个客户端进行信息通信;
14.所述群体广播通信为与至少两个客户端进行信息通信。
15.进一步地,所述群体广播通信包括部分群体广播通信和所有群体广播通信;
16.所述部分群体广播通信为与预设范围内的部分客户端进行信息通信;
17.所述所有群体广播通信为与预设范围内的所有客户端进行信息通信。
18.进一步地,所述时限限制包括定时连接和不定时连接;
19.所述定时连接为服务端在预设时间后发起中止与客户端的信息通信连接;
20.所述不定时连接为对服务端与客户端的信息通信连接不做预设时间限制。
21.第二方面,本发明提供了一种优化websocket连接的方法,包括:
22.对调用websocket的客户端进行连接权限的判断;
23.判断为具有连接权限时,根据业务逻辑对业务进行分层分解以形成业务拓扑树,并进行用户权限与域权限的判断;
24.基于所判断出的用户权限与域权限筛选出需要广播通信的客户端;
25.基于所述广播通信的连接频次对此次通信连接做时限限制;
26.基于上述四个操作步骤构建一组固定的websocket连接属性;
27.复用所构建的该组固定的websocket连接属性对后续的被判断为具有相同属性的websocket连接进行直接连接。
28.进一步地,还包括由所述业务拓扑树的根节点出发,根据业务大小,关联进行分层分级,并根据业务特点为每个拓扑分支的每个节点命名。
29.进一步地,所述广播通信包括私人广播通信和群体广播通信;
30.所述私人广播通信为与单个客户端进行信息通信;
31.所述群体广播通信为与至少两个客户端进行信息通信。
32.进一步地,所述群体广播通信包括部分群体广播通信和所有群体广播通信;
33.所述部分群体广播通信为与预设范围内的部分客户端进行信息通信;
34.所述所有群体广播通信为与预设范围内的所有客户端进行信息通信。
35.进一步地,所述时限限制包括定时连接和不定时连接;
36.所述定时连接为服务端在预设时间后发起中止与客户端的信息通信连接;
37.所述不定时连接为对服务端与客户端的信息通信连接不做预设时间限制。
38.总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
39.(1)本发明构建了包括控制器、业务器、广播器和频次器四种工具的基于websocket的业务分发器,于websocket调用之前根据控制、业务、广播和频次四种工具对服务端与客户端间的数据通信进行了分割、梳理和判断,规范并秩序了两端之间的每一次通信,尽可能地完善优化了之间通信所需要的各种功能,使得通信更加的安全、高效且层次清晰,并严格控制了通信中使用的带宽,且为后续的由四种工具配置形成的一组固定的连接属性的复用奠定了技术基础。
40.(2)本发明在服务端通过websocket与客户端通信时,将由前述四种工具分别依次配置形成的一组固定的连接属性进行了记录和复用,从而避免了重复配置,提升了websocket连接和业务分发的效率,使得通信更加的安全、高效、和层次清晰,且节省带宽开销。
附图说明
41.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本发明实施例提供的一种优化websocket连接的方法的流程示意图;
43.图2为本发明实施例提供的业务结构流程图;
44.图3为本发明实施例提供的业务分发器内部工具的使用流程图。
具体实施方式
45.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细地说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
46.本技术的说明书、权利要求书或上述附图中的术语“包括”或“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备并没有限定于已列出的步骤或单元,而是可选地还可以包括没有列出的步骤或单元,或可选地还可以包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
47.参考图2和图3,在一个实施例中,一种基于websocket的业务分发器的四种工具包括控制器、业务器、广播器和频次器。
48.控制器:控制器是一种开关判断,对调用websocket的用户(实际上即为用户所使用的客户端)进行连接权限(调用权限)的判断,是四种工具的优先条件,如无权限调用则无需进行其他工具的配置,直接结束流程,关闭连接;如有权限调用,则开始下一个工具的配置。
49.业务器:业务器是最为重要核心的部分,其根据具体的业务特点,将业务分层分解来形成业务拓扑树,由根节点出发,根据业务大小,关联进行分层分级,不需要所有的拓扑分支有相同数量的节点,根据具体业务具体分配,每个分支的每个节点可根据业务命名,每个拓扑分支可根据其业务特点赋予唯一命名,以便形成专门的配置名称来使用。
50.广播器:广播器指的是需要由服务端发起的具体客户端对象,其依赖业务器所判断出的具体的用户权限与域权限来筛选出需要发送的具体用户,根据具体的用户特征来进行信息通信过滤。此工具分为私人广播与群体广播,私人广播指的是根据业务需要与单个用户进行信息通信,群体广播又分为部分群体广播与所有群体广播,通常会使用部分群体广播进行业务逻辑的信息通信,所有群体广播面对的是所有用户,当需要用到与所有用户进行通信的业务逻辑时可使用。另外,值得一提的是,websocket中的心跳连接heartbeat就是所有群体广播,通常设置频次为五分钟发送一次,由客户端主动发出给服务端,用来测试
连接是否正常,如连接异常,则会请求恢复重连。
51.频次器:频次器指的是客户端和服务端两端相连的时限,是与定时任务结合的产物,频次器分为定时与不定时两种类型,定时频次器指的是到了所设置的时间,则会由服务端主动发起中止与客户端的连接,此中止为单向不可逆的,如想恢复连接,则需要通过业务分发器发起重连;而不定时的连接则是永久连接,没有时限的,直到客户端关闭或服务端服务终止为止。此工具旨在根据具体业务,自由控制长连接,节省带宽资源。
52.本发明提供的基于websocket的业务分发器的四种工具包括控制器、业务器、广播器和频次器,使得应用在使用websocket传送数据之前,会根据业务分发器的四种工具来进行配置。其中控制器判断当前用户是否有权限调用,例如游客登录时无需推送消息,控制器可置为否来中断连接;业务器是最为重要核心的部分,业务器对具体的业务逻辑进行分层分级来形成拓扑树,可根据具体业务分解到最小单元;广播器根据需要通信的对象来决定个人与集体的广播方式;频次器根据通信的频次来决定定时与不定时的长连接。如此一来,于websocket调用之前根据控制、业务、广播和频次四种工具对服务端与客户端间的数据通信进行了分割、梳理和判断,规范并秩序了两端之间的每一次通信,尽可能地完善优化了之间通信所需要的各种功能,使得通信更加的安全、高效且层次清晰,并严格控制了通信中使用的带宽,且为后续的由四种工具配置形成的一组固定的连接属性的复用奠定了技术基础。
53.参考图1和图3,在另一个实施例中,一种优化websocket连接的方法主要包括以下几个步骤。
54.步骤1、对调用websocket的客户端进行连接权限的判断。具体的,首先会通过控制器判断调用websocket的客户端是否有调用的权限,若无权限,则由前述的业务分发器返回服务器继续执行自己的线程并关闭websocket连接,若有权限,则进行下一步操作。
55.步骤2、当步骤1中的控制器判断为具有连接权限时,业务器根据业务逻辑对业务进行分层分解以形成业务拓扑树,由具体的拓扑分支形成命名记录,并进行用户权限与域权限的判断。
56.步骤3、广播器基于步骤2中的业务器所判断出的用户权限与域权限筛选出需要广播通信的客户端。
57.步骤4、频次器基于所述广播通信的连接频次对此次通信连接做时限限制。具体的,由广播的连接频次配置是持久连接还是非持久连接。
58.步骤5、基于上述步骤1至步骤4四个操作步骤构建一组固定的websocket连接属性。具体的,业务分发器会根据上述四种工具配置形成一组固定的连接属性,并进行记录。
59.步骤6、复用所构建的该组固定的websocket连接属性对后续的被判断为具有相同属性的websocket连接进行直接连接。具体的,之后若有相同属性的连接则可直接通过步骤5已形成的一组固定的连接属性进行连接,而无需再根据业务分发器重新确定属性。
60.图2只是服务端与客户端通信的一个最小单元,真实应用中会存在一个服务端对应于多个客户端的连接,而在服务端与每个客户端使用websocket时,均会调用业务分发器,业务分发器会根据上述四种工具配置形成一组固定的连接属性,并进行记录,之后若有相同属性的连接可直接通过此配置进行连接,而无需再根据业务分发器重新确定属性。控制器、业务器、广播器和频次器四种工具的具体技术描述参见上一个实施例,此处不再赘
述。
61.本发明在服务端通过websocket与客户端通信时,将由前述四种工具分别依次配置形成的一组固定的连接属性进行了记录和复用,从而避免了重复配置,提升了websocket连接和业务分发的效率,使得通信更加的安全、高效、和层次清晰,且节省带宽开销。
62.需要说明的是,附图中的流程图或框图,图示了按照本公开各种实施例的系统、方法或计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。还要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
63.本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别的,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本公开的范围。
64.尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

技术特征:
1.一种基于websocket的业务分发器,其特征在于,包括:控制器,用于对调用websocket的客户端进行连接权限的判断;业务器,用于在所述控制器判断为具有连接权限时,根据业务逻辑对业务进行分层分解以形成业务拓扑树,并进行用户权限与域权限的判断;广播器,用于基于所述业务器所判断出的用户权限与域权限筛选出需要广播通信的客户端;频次器,用于基于所述广播通信的连接频次对此次通信连接做时限限制。2.如权利要求1所述的业务分发器,其特征在于,所述业务器由所述业务拓扑树的根节点出发,根据业务大小,关联进行分层分级,并可根据业务特点为每个拓扑分支的每个节点命名。3.如权利要求1所述的业务分发器,其特征在于,所述广播通信包括私人广播通信和群体广播通信;所述私人广播通信为与单个客户端进行信息通信;所述群体广播通信为与至少两个客户端进行信息通信。4.如权利要求3所述的业务分发器,其特征在于,所述群体广播通信包括部分群体广播通信和所有群体广播通信;所述部分群体广播通信为与预设范围内的部分客户端进行信息通信;所述所有群体广播通信为与预设范围内的所有客户端进行信息通信。5.如权利要求1所述的业务分发器,其特征在于,所述时限限制包括定时连接和不定时连接;所述定时连接为服务端在预设时间后发起中止与客户端的信息通信连接;所述不定时连接为对服务端与客户端的信息通信连接不做预设时间限制。6.一种优化websocket连接的方法,其特征在于,包括:对调用websocket的客户端进行连接权限的判断;判断为具有连接权限时,根据业务逻辑对业务进行分层分解以形成业务拓扑树,并进行用户权限与域权限的判断;基于所判断出的用户权限与域权限筛选出需要广播通信的客户端;基于所述广播通信的连接频次对此次通信连接做时限限制;基于上述四个操作步骤构建一组固定的websocket连接属性;复用所构建的该组固定的websocket连接属性对后续的被判断为具有相同属性的websocket连接进行直接连接。7.如权利要求6所述的优化websocket连接的方法,其特征在于,还包括由所述业务拓扑树的根节点出发,根据业务大小,关联进行分层分级,并根据业务特点为每个拓扑分支的每个节点命名。8.如权利要求6所述的优化websocket连接的方法,其特征在于,所述广播通信包括私人广播通信和群体广播通信;所述私人广播通信为与单个客户端进行信息通信;所述群体广播通信为与至少两个客户端进行信息通信。9.如权利要求8所述的优化websocket连接的方法,其特征在于,所述群体广播通信包
括部分群体广播通信和所有群体广播通信;所述部分群体广播通信为与预设范围内的部分客户端进行信息通信;所述所有群体广播通信为与预设范围内的所有客户端进行信息通信。10.如权利要求6所述的优化websocket连接的方法,其特征在于,所述时限限制包括定时连接和不定时连接;所述定时连接为服务端在预设时间后发起中止与客户端的信息通信连接;所述不定时连接为对服务端与客户端的信息通信连接不做预设时间限制。

技术总结
本发明公开了一种优化WebSocket连接的方法,包括:对调用WebSocket的客户端进行连接权限的判断;判断为具有连接权限时根据业务逻辑对业务进行分层分解以形成业务拓扑树,并进行用户权限与域权限的判断;基于所判断出的用户权限与域权限筛选出需要广播通信的客户端;基于广播通信的连接频次对此次通信连接做时限限制;基于上述四个步骤构建一组固定的WebSocket连接属性;复用所构建的该组固定的WebSocket连接属性对后续的被判断为具有相同属性的WebSocket连接进行直接连接。本发明在服务端通过WebSocket与客户端通信时,将上述四个配置步骤组合形成一组固定的连接属性并记录以便复用,从而避免了重复配置,提升了WebSocket连接和业务分发的效率。WebSocket连接和业务分发的效率。WebSocket连接和业务分发的效率。


技术研发人员:洪杰 朱用功 江露
受保护的技术使用者:武汉虹信技术服务有限责任公司
技术研发日:2023.05.23
技术公布日:2023/10/11
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐