一种会议消息推送方法、会议服务端及电子设备技术

技术编号:37037130 阅读:11 留言:0更新日期:2023-03-29 19:16
本发明专利技术实施例公开了一种会议消息推送方法、会议服务端及电子设备,所述方法包括:通过多个承载socket io微服务的服务实例与多个socket io客户端分别建立长连接;通过服务实例接收来自socket io客户端的会议业务事件;通过生产者基于预置的远程字典服务Red i s模板对会议业务事件进行处理,得到与会议业务事件对应的会议消息,并将会议消息添加至Red i s消息队列中;通过消费者持续消费Red i s消息队列中的会议消息,并将会议消息发送给各个服务实例,以由服务实例将会议消息推送给对应的socket io客户端。通过轻量级的Red i s消息队列共享各服务实例间的会议消息,实现客户端连接服务端的负载均衡;利用Red i s队列即产即消的特点,并通过socket io框架连接服务端和客户端,提高了会议消息推送的时效性。提高了会议消息推送的时效性。提高了会议消息推送的时效性。

【技术实现步骤摘要】
一种会议消息推送方法、会议服务端及电子设备


[0001]本专利技术涉及通讯
,特别是涉及一种会议消息推送方法、会议服务端及电子设备。

技术介绍

[0002]随着docker(一种开源的应用容器引擎)、k8s(kubernetes,一种可移植容器的编排管理工具)为代表的容器技术日趋主流,数字会议等传输业务也逐渐云化。其中,k8s的容器弹性伸缩很好地取代了传统的服务集群方式,可以更灵活地应对业务压力,但是现有的技术存在一些缺陷:云化场景下,基于socketio(一种在客户端和服务端之间建立的双向通信数据交换技术)的服务端与客户端通信,不同客户端的消息只能与同一个服务端副本实例交互,多副本实例之间存在通讯转发问题,无法发挥副本弹缩的优势。现有的解决方案包括两种,一是通过业务限制,如一个会议下所有客户端连接至同一服务端实例,此时无法便捷地实现服务端负载均衡,需要根据业务定制Nginx(engine x,一种高性能的超文本传输协议和反向代理网络服务器)进行转发;另一种方案则是服务端副本间的通信通过kafka(一种高吞吐量的分布式发布订阅消息系统)等实现,这种方案不够轻量、便捷,且在实时性方面的性能难以保证。

技术实现思路

[0003]以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
[0004]本专利技术实施例提供一种会议消息推送方法、会议服务端及电子设备,能够实现客户端连接服务端的负载均衡;同时,充分利用远程字典服务(Remote Dictionary Server,Redis)队列即产即消的特点,并通过socketio框架连接服务端和客户端,提高了会议消息推送的时效性。
[0005]第一方面,本专利技术实施例提供一种会议消息推送方法,应用于socketio服务端,所述方法包括:
[0006]通过多个承载socketio微服务的服务实例与多个socketio客户端分别建立长连接;
[0007]通过所述服务实例接收来自所述socketio客户端的会议业务事件;
[0008]通过生产者基于预置的远程字典服务Redis模板对所述会议业务事件进行处理,得到与所述会议业务事件对应的会议消息,并将所述会议消息添加至Redis消息队列中;
[0009]通过消费者持续消费所述Redis消息队列中的所述会议消息,并将所述会议消息发送给各个所述服务实例,以由所述服务实例将所述会议消息推送给对应的所述socketio客户端。
[0010]第二方面,本专利技术实施例提供一种会议服务端,包括:
[0011]连接模块,用于通过多个承载socketio微服务的服务实例与多个socketio客户端
分别建立长连接,其中,每个所述socketio客户端对应与一个所述服务实例建立长连接;
[0012]接收模块,用于通过服务实例接收来自所述socketio客户端的会议业务事件;
[0013]生产者模块,用于根据预置的远程字典服务Redis模板对所述会议业务事件进行处理,得到与所述会议业务事件对应的会议消息,并将所述会议消息添加至Redis消息队列中;
[0014]消费者模块,用于持续消费所述Redis消息队列中的会议消息,并将所述会议消息发送给各个所述服务实例,以由所述服务实例将所述会议消息推送给对应的所述socketio客户端。
[0015]第三方面,本专利技术实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的会议消息推送方法。
[0016]第四方面,本专利技术实施例提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的会议消息推送方法。
[0017]本专利技术实施例的方案能够实现客户端连接服务端的负载均衡;同时,充分利用Redis队列即产即消的特点,并通过socketio框架连接服务端和客户端,提高了会议消息推送的时效性。
[0018]本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和得到。
附图说明
[0019]附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。
[0020]图1是一种会议消息推送方法的流程示意图;
[0021]图2是图1中步骤S1000的一种具体实现过程示意图;
[0022]图3是图1中步骤S3000的一种具体实现过程示意图;
[0023]图4是图3中步骤S3300的一种具体实现过程示意图;
[0024]图5是图1中步骤S4000的一种具体实现过程示意图;
[0025]图6是本专利技术另一实施例提供的一种会议服务端的结构图;
[0026]图7是本专利技术另一实施例提供的一种电子设备的结构示意图。
具体实施方式
[0027]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0028]应了解,在本专利技术实施例的描述中,如果有描述到“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A
和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
[0029]此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0030]本专利技术实施例涉及的基于socketio框架的会议消息推送方法,其作为一种高效的服务端与客户端之间的消息传送手段,能有效保证会议消息推送的时效性,在现有的数字会议中得到广泛的应用。在会议系统的实际应用环境中,使用传统的会议消息推送方法存在通信转发的问题,尤其是在多客户端接入的情况下,客户端与服务端之间的连接难以实现负载均衡,会议信息的传送实时性也无法保证。
[0031]相关技术中,基于socketio框架的会议系统实现会议信息快速传送的方式有两种,一是通过业务限制,如一个会议下所有客户端连接至同一服务端实例,此时会议信息需要根据业务定制Nginx转发,无法便捷地实现服务端负载均本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种会议消息推送方法,应用于socketio服务端,所述方法包括:通过多个承载socketio微服务的服务实例与多个socketio客户端分别建立长连接;通过所述服务实例接收来自所述socketio客户端的会议业务事件;通过生产者基于预置的远程字典服务Redis模板对所述会议业务事件进行处理,得到与所述会议业务事件对应的会议消息,并将所述会议消息添加至Redis消息队列中;通过消费者持续消费所述Redis消息队列中的所述会议消息,并将所述会议消息发送给各个所述服务实例,以由所述服务实例将所述会议消息推送给对应的所述socketio客户端。2.根据权利要求1所述的方法,其特征在于,在所述通过多个承载socketio微服务的服务实例与多个socketio客户端分别建立长连接之前,还包括:在所述socketio服务端构建承载socketio微服务的多个所述服务实例;根据预设的连接规则,确定所述服务实例与所述socketio客户端之间的对应关系。3.根据权利要求2所述的方法,其特征在于,所述通过多个承载socketio微服务的服务实例与多个socketio客户端分别建立长连接,包括:根据所述服务实例与所述socketio客户端之间的对应关系,使所述服务实例经由socketio客户端连接池与对应的所述socketio客户端建立长连接。4.根据权利要求3所述的方法,其特征在于,所述通过生产者基于预置的远程字典服务Redis模板对所述会议业务事件进行处理,得到与所述会议业务事件对应的会议消息,并将所述会议消息添加至Redis消息队列中,包括:在所述服务实例中配置远程字典服务Redis模板;通过所述socketio客户端连接池获取所述服务实例中的所述会议业务事件;在所述会议业务事件为广播事件的情况下,通过所述远程字典服务Redis模板把所述会议业务事件进行转换以形成所述会议消息,并将所述会议消息添加至所述Redis消息队列中。5.根据权利要求4所述的方法,其特征在于,在所述通过所述socketio客户端连接池获取所述服务实例中的所述会议业务事件之后,还包括:在所述会议业务事件为非广播事件的情况下,通过所述服...

【专利技术属性】
技术研发人员:朱捷
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

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

1