一种高并发聊天室消息分发方法及装置与流程

文档序号:28163142发布日期:2021-12-24 20:59阅读:120来源:国知局
一种高并发聊天室消息分发方法及装置与流程

1.本发明涉及即时通信技术领域,具体而言,涉及一种高并发聊天室消息分发方法及装置。


背景技术:

2.随着互联网的高速发展,即时通信已成为人们生活中不可或缺的交流手段,在平时的休闲娱乐及工作中即时通信都得到了广泛的应用。聊天室作为一种新兴的即时通信方式,备受人们青睐。并且迅速由秀场直播、游戏直播等进入到企业领域,切入到教育、培训、会议、电商、营销等各个业务场景。在直播等业务场景中,聊天室承担着消息通信的重要的作用。
3.对于互联网环境下的直播聊天室,用户每发送一条消息,该消息都会首先传输到服务器,然后经由该服务器分发到该聊天室中的其他每个用户。但是当直播聊天室的用户较多,并且集中在热度比较高的直播时段,在直播聊天室中发送消息时,容易使得消息的并发量增大。当直播聊天室中发送的消息的并发量大于服务器的出口带宽时,会使得聊天室的消息难以发送出去,从而使得聊天室的消息的延迟增大,降低了聊天室的用户的体验。


技术实现要素:

4.本发明的目的在于提供一种高并发聊天室消息分发方法及装置,其能够在业务突增的时候,承载消息的高并发量,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
5.本发明的实施例是这样实现的:
6.第一方面,本技术实施例提供一种高并发聊天室消息分发方法,其包括如下步骤:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方集成逻辑sdk,消息队列通过逻辑sdk将添加了协议头的客户端消息分发至第三方。第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。
7.在本发明的一些实施例中,上述连接层接收客户端消息的步骤之前,该方法还包括:实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。
8.在本发明的一些实施例中,上述实时监测聊天室所有客户端的情况的步骤之前,该方法还包括:当用户进入聊天室时,获取用户的ip和port。
9.在本发明的一些实施例中,上述连接层与聊天室所有客户端建立长连接。
10.在本发明的一些实施例中,上述连接层与业务层建立长连接。
11.在本发明的一些实施例中,上述业务层对解码消息进行解密的步骤包括:若解密失败则抛弃解码消息。
12.第二方面,本技术实施例提供一种高并发聊天室消息分发装置,其包括:连接层解码模块,用于连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。协议头添加模块,用于业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。消息分发模块,用于第三方集成逻辑sdk,消息队列通过逻辑sdk将添加了协议头的客户端消息分发至第三方。用户消息得到模块,用于第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。连接层接收模块,用于业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。用户消息广播模块,用于连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。
13.在本发明的一些实施例中,上述高并发聊天室消息分发装置还包括:客户端消息获取模块,用于实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。
14.在本发明的一些实施例中,上述高并发聊天室消息分发装置还包括:ip+port获取模块,用于当用户进入聊天室时,获取用户的ip和port。
15.在本发明的一些实施例中,上述连接层与客户端建立长连接。
16.在本发明的一些实施例中,上述连接层与业务层建立长连接。
17.在本发明的一些实施例中,上述协议头添加模块包括:解码消息抛弃单元,用于若解密失败则抛弃解码消息。
18.第三方面,本技术实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
19.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
20.相对于现有技术,本发明的实施例至少具有如下优点或有益效果:
21.本发明提供一种高并发聊天室消息分发方法及装置,其包括如下步骤:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方集成逻辑sdk,消息队列通过逻辑sdk将添加了协议头的客户端消息分发至第三方。第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。当任一客户端发送消息时,连接层能够接收客户端消息,对客户端消息进行解码后,将解码后的客户端消息发送至业务层。业务层接收到连接层发送的解码消息后,对解码消息进行解密,当业务层成功解密解码消息得到客户端消息后,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方通过集成的逻辑sdk获得消息队列中增加了协议头的客户端消息。则无需业务层对大量消息依次进行处理后分发,而是消息队列直接通过逻辑sdk将客户端消息分发至第三方,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大
的问题。第三方对添加了协议头的客户端消息进行处理并将处理得到的用户消息通过消息队列发送至业务层。业务层将加密后的用户消息经由消息队列发送至连接层,连接层再下发用户消息至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。该方法通过第三方集成的逻辑sdk调用消息队列中添加了协议头的客户端消息,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,可以承载消息的高并发并处理大量消息的效果,从而灵活应对业务突增,减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
附图说明
22.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
23.图1为本发明实施例提供的一种高并发聊天室消息分发方法的流程图;
24.图2为本发明实施例提供的另一种高并发聊天室消息分发方法的流程图;
25.图3为本发明实施例提供的一种高并发聊天室消息分发装置的结构示意图;
26.图4为本发明实施例提供的一种电子设备的示意性结构框图。
27.图标:100

高并发聊天室消息分发装置;110

连接层解码模块;120

协议头添加模块;130

消息分发模块;140

用户消息得到模块;150

连接层接收模块;160

用户消息广播模块;101

存储器;102

处理器;103

通信接口。
具体实施方式
28.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
29.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
31.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,若出现术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,若出现由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
32.在本技术的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
33.在本技术的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。
34.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
35.实施例
36.请参照图1和图2,图1所示为本技术实施例提供的一种高并发聊天室消息分发方法的流程图,图2所示为本技术实施例提供的另一种高并发聊天室消息分发方法的流程图。一种高并发聊天室消息分发方法,其包括如下步骤:
37.s110:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层;
38.具体的,上述连接层具有链路维护、连接的功能,即连接层能同时与聊天室所有客户端及业务层建立长连接,并且可以维护连接层与聊天室所有客户端以及连接层与业务层之间的通信。当聊天室用户增多时,连接层可以根据用户在线情况进行动态扩容。且连接层具有编解码功能,即当任一客户端发送消息时,连接层能够接收客户端消息,并对客户端消息进行解码。此外,连接层还具有下发消息和转发消息的功能,则连接层可以将解码后的客户端消息发送至业务层。
39.s120:业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列;
40.业务层具有通信维护的功能,即业务层可以对业务层与连接层的通信协议以及业务层与第三方的通信协议进行维护,且具有下行加工、加解密、上行转发的功能,即业务层可以对接收到的消息进行包装加工后再进行转发。具体的,业务层将对连接层发送的解码消息进行解密。若业务层成功解密上述解码消息,则可以得到客户端消息。紧接着,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。若业务层未成功解密上述解码消息,则直接抛弃上述解码消息。示例性的,当上述解码消息包含有违法信息时,上述解码消息是不能成功解密的,则直接将上述解码消息抛弃即可。
41.s130:第三方集成逻辑sdk,消息队列通过逻辑sdk将添加了协议头的客户端消息分发至第三方;
42.具体的,第三方可以集成逻辑sdk,第三方通过逻辑sdk获得消息队列中增加了协议头的客户端消息,并对客户端消息进行处理。则无需业务层对大量消息依次进行处理后
分发,而是消息队列直接通过逻辑sdk将客户端消息分发至第三方,可以避免当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。示例性的,第三方可以是直播业务或其他业务。
43.上述逻辑sdk封装了对接业务层的api,方便了第三方的快速接入。则当多个第三方接入业务层时,第三方直接利用自身集成的逻辑sdk调用消息队列中添加了协议头的客户端消息即可,则多个第三方可以快速接入业务层,从而大幅节省了时间。
44.s140:第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层;
45.具体的,第三方根据自身业务特色对添加了协议头的客户端消息进行处理,以得到用户消息,并将用户消息通过消息队列发送至业务层。示例性的,当第三方为直播业务时,直播业务根据直播业务的需要对客户端消息进行处理,并将处理后的客户端消息经由消息队列发送至业务层。
46.s150:业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层;
47.具体的,由于业务层具有下行加工、加解密、上行转发的功能,则业务层可以对用户消息进行加密,并将加密后的用户消息经由消息队列转发至连接层。
48.s160:连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。
49.具体的,由于连接层具有下发消息和转发消息的功能,则连接层可以将业务层发来的用户消息发送至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。
50.需要说明的是,上述消息队列相当于在消息的传输过程中用于保存消息的容器。消息队列的主要目的是提供路由并保证消息的传递;当发送消息时,如果接收者不可用,则消息队列会保留消息,直到可以成功地传递消息为止。
51.上述实现过程中,连接层同时与聊天室所有客户端及业务层建立长连接,当任一客户端发送消息时,连接层能够接收客户端消息,对客户端消息进行解码后,将解码后的客户端消息发送至业务层。业务层接收到连接层发送的解码消息后,对解码消息进行解密,当业务层成功解密解码消息得到客户端消息后,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方通过集成的逻辑sdk获得消息队列中增加了协议头的客户端消息。则无需业务层对大量消息依次进行处理后分发,而是消息队列直接通过逻辑sdk将客户端消息分发至第三方,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题。第三方对添加了协议头的客户端消息进行处理并将处理得到的用户消息通过消息队列发送至业务层。业务层将加密后的用户消息经由消息队列发送至连接层,连接层再下发用户消息至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。该方法通过第三方集成的逻辑sdk调用消息队列中添加了协议头的客户端消息,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,可以承载消息的高并发并处理大量消息的效果,从而灵活应
对业务突增,减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
52.在本实施例的一些实施方式中,上述连接层接收客户端消息的步骤之前,该方法还包括:实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。具体的,实时监测聊天室所有客户端的情况,包括登录聊天室的所有客户端的在线情况,以及每个客户端是否有消息发送。当聊天室中任一客户端发送消息时,聊天室将对客户端发送的消息进行加密并编码,以保证客户端消息的完整性,再将加密编码后的客户端消息发送至连接层,避免在客户端消息的传输过程中,客户端消息遭到损坏或部分信息缺失。
53.在本实施例的一些实施方式中,上述实时监测聊天室所有客户端的情况的步骤之前,该方法还包括:当用户进入聊天室时,获取用户的ip和port。具体的,连接层具有连接的功能,当用户进入聊天室时,连接层与客户端建立长连接,获取并保存客户端的ip和port。
54.在本实施例的一些实施方式中,上述连接层与聊天室所有客户端建立长连接。从而当任一客户端发送消息时,连接层可以及时接收客户端消息。连接层也可以及时将加密后的用户消息下发至客户端。保证了连接层与聊天室所有客户端之间消息传输的及时性。
55.在本实施例的一些实施方式中,上述连接层与业务层建立长连接,以此保证了连接层与业务层之间消息传输的及时性。
56.在本实施例的一些实施方式中,上述业务层对解码消息进行解密的步骤包括:若解密失败则抛弃解码消息。示例性的,当解码消息包含有违法信息时,解码消息是不能成功解密的,则直接将上述解码消息抛弃即可。
57.请参照图3,图3所示为本技术实施例提供的一种高并发聊天室消息分发装置100的结构示意图。一种高并发聊天室消息分发装置100包括:连接层解码模块110,用于连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。协议头添加模块120,用于业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。消息分发模块130,用于第三方集成逻辑sdk,消息队列通过逻辑sdk将添加了协议头的客户端消息分发至第三方。用户消息得到模块140,用于第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。连接层接收模块150,用于业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。用户消息广播模块160,用于连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。具体的,当任一客户端发送消息时,通过连接层解码模块110接收客户端消息,并对客户端消息进行解码,将解码后的客户端消息发送至业务层。通过协议头添加模块120对连接层发送的解码消息进行解密,当解密成功得到客户端消息后,对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。通过消息分发模块130,消息队列通过第三方集成的逻辑sdk将添加了协议头的客户端消息分发至第三方,可以避免当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。第三方处理得到的用户消息依次通过用户消息得到模块140、连接层接收模块150、用户消息广播模块160下发至当前聊天室的所有客户端。
58.在本实施例的一些实施方式中,上述高并发聊天室消息分发装置100还包括:客户
端消息获取模块,用于实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。具体的,通过客户端消息获取模块实时监测聊天室所有客户端的情况,则当聊天室中任一客户端发送消息时,聊天室将对客户端发送的消息进行加密并编码,以保证客户端消息的完整性,再将加密编码后的客户端消息发送至连接层,避免在客户端消息的传输过程中,客户端消息遭到损坏或部分信息缺失。
59.在本实施例的一些实施方式中,上述高并发聊天室消息分发装置100还包括:ip+port获取模块,用于当用户进入聊天室时,获取用户的ip和port。
60.在本实施例的一些实施方式中,上述连接层与客户端建立长连接。从而保证了连接层与聊天室所有客户端之间消息传输的及时性。
61.在本实施例的一些实施方式中,上述连接层与业务层建立长连接,以此保证了连接层与业务层之间消息传输的及时性。
62.在本实施例的一些实施方式中,上述协议头添加模块120包括:解码消息抛弃单元,用于若解密失败则抛弃解码消息。若解码消息包含有违法信息,则解码消息是不能成功解密的,则直接将上述解码消息抛弃即可。
63.请参阅图4,图4为本技术实施例提供的电子设备的一种示意性结构框图。电子设备包括存储器101、处理器102和通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,如本技术实施例所提供的一种高并发聊天室消息分发装置100对应的程序指令/模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
64.其中,存储器101可以是但不限于,随机存取存储器101(random access memory,ram),只读存储器101(read only memory,rom),可编程只读存储器101(programmable read

only memory,prom),可擦除只读存储器101(erasable programmable read

only memory,eprom),电可擦除只读存储器101(electric erasable programmable read

only memory,eeprom)等。
65.处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器102,包括中央处理器102(central processing unit,cpu)、网络处理器102(network processor,np)等;还可以是数字信号处理器102(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
66.可以理解,图4所示的结构仅为示意,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
67.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能
和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
68.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
69.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器101(rom,read

only memory)、随机存取存储器101(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
70.综上所述,本技术实施例提供的一种高并发聊天室消息分发方法及装置,其包括如下步骤:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方集成逻辑sdk,消息队列通过逻辑sdk将添加了协议头的客户端消息分发至第三方。第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。上述实现过程中,连接层同时与聊天室所有客户端及业务层建立长连接,当任一客户端发送消息时,连接层能够接收客户端消息,对客户端消息进行解码后,将解码后的客户端消息发送至业务层。业务层接收到连接层发送的解码消息后,对解码消息进行解密,当业务层成功解密解码消息得到客户端消息后,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方通过集成的逻辑sdk获得消息队列中增加了协议头的客户端消息。则无需业务层对大量消息依次进行处理后分发,而是消息队列直接通过逻辑sdk将客户端消息分发至第三方,可以避免当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,能够承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。第三方对添加了协议头的客户端消息进行处理并将处理得到的用户消息通过消息队列发送至业务层。业务层将加密后的用户消息经由消息队列发送至连接层,连接层再下发用户消息至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。该方法及装置通过第三方集成的逻辑sdk调用消息队列中添加了协议头的客户端消息,而无需业务层对大量消息依次进行处理后分发,避免了当聊天室中发送的消息并发量过高
时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,可以承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
71.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
72.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1