即时消息的处理方法和装置转让专利

申请号 : CN201410171968.0

文献号 : CN103929353B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵新

申请人 : 百度在线网络技术(北京)有限公司

摘要 :

本发明提出一种即时消息的处理方法和装置。该方法包括:接收即时通信的发送者发送的即时消息,即时消息中包括消息对,消息对包括发送者的标识信息、即时通信的接收者的标识信息和即时消息类型;为即时消息分配一个标识信息,即时消息的标识信息在消息对范围内唯一且根据接收时间依次递增;根据即时消息的标识信息对消息对范围内的即时消息进行处理。本发明实施例的即时消息的处理方法,能够保证精准性,而且处理效率高。

权利要求 :

1.一种即时消息的处理方法,其特征在于,包括:

接收即时通信的发送者发送的即时消息,所述即时消息中包括消息对,所述消息对包括所述发送者的标识信息、所述即时通信的接收者的标识信息和即时消息类型,其中,所述即时消息中还包括产生时间;

为所述即时消息分配一个标识信息,所述即时消息的标识信息在所述消息对范围内唯一且根据接收时间依次递增,其中,在所述为所述即时消息分配一个标识信息之前,所述方法还包括:根据所述消息对和产生时间,确定是否已存在第一消息,所述第一消息是与所述即时消息具有相同消息对和产生时间的即时消息;在确定已存在所述第一消息时,丢弃所述即时消息;

其中所述为所述即时消息分配一个标识信息,包括:为所述消息对分配一个消息处理中心,通过所述消息处理中心从预先存储的消息标识数据库MID中获取至少一个的标识,并在获取的至少一个的标识中为所述即时消息分配一个标识信息,并在分配完后,再从预先存储的MID中获取至少一个的标识;根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理。

2.根据权利要求1所述的方法,其特征在于,所述根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理,包括:根据所述即时消息的标识信息对所述消息对范围内的即时消息进行排序,并按照排序结果将对应的即时消息转发至对应的接收者。

3.根据权利要求1所述的方法,其特征在于,所述根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理,包括:获取第一标识信息,所述第一标识信息是参与方读到的最后一条消息的标识信息,所述参与方是所述发送者或者接收者,并确定所述参与方对应的消息对范围内已分配的最大标识信息;

将所述最大标识信息与第一标识信息的差值,确定为所述参与方的未读消息数量;

将第一范围内的即时消息确定为所述参与方的未读消息,所述第一范围是所述参与方对应的消息对中所述第一标识信息和所述最大标识信息之间的每个标识信息。

4.根据权利要求1所述的方法,其特征在于,所述根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理,包括:存储消息对范围内的最大标识信息对应的即时消息;

在展示最近联系人时,将所述消息对范围内的最大标识信息对应的即时消息,确定为所述消息对对应的最近联系人的最后一条即时消息。

5.根据权利要求1所述的方法,其特征在于,还包括:

并确定所述消息处理中心的标识信息,所述消息处理中心用于为所述消息对范围内的所述即时消息分配一个标识信息,并根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理。

6.根据权利要求5所述的方法,其特征在于,所述确定所述消息处理中心的标识信息,包括:采用如下公式计算所述消息处理中心的标识信息:

ID=(UIN1*UIN2)%N

其中,ID是消息处理中心的标识信息,UIN1表示发送者标识信息和接收者标识信息中的最小值,UIN2是发送者标识信息和接收者标识信息中的最大值,N表示所述消息处理中心的总数。

7.根据权利要求6所述的方法,其特征在于,当所述即时消息类型是多人即时通信时,在计算所述ID时将所述发送者的标识置为1。

8.一种即时消息的处理装置,其特征在于,包括:

接收模块,用于接收即时通信的发送者发送的即时消息,所述即时消息中包括消息对,所述消息对包括所述发送者的标识信息、所述即时通信的接收者的标识信息和即时消息类型,其中,所述即时消息中还包括产生时间;

第一分配模块,用于为所述即时消息分配一个标识信息,所述即时消息的标识信息在所述消息对范围内唯一且根据接收时间依次递增,其中,还包括:确定模块,用于在为所述即时消息分配一个标识信息之前,根据所述消息对和产生时间,确定是否已存在第一消息,所述第一消息是与所述即时消息具有相同消息对和产生时间的即时消息;丢弃模块,用于在确定已存在所述第一消息时,丢弃所述即时消息;第二分配模块,用于为所述消息对分配一个消息处理中心;

所述第一分配模块具体用于:通过所述消息处理中心从预先存储的消息标识数据库MID中获取至少一个的标识信息,并在所述获取的至少一个的标识信息中为所述即时消息分配一个标识信息,并在分配完后,再从预先存储的MID中获取至少一个的标识;

处理模块,用于根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理。

9.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于:

根据所述即时消息的标识信息对所述消息对范围内的即时消息进行排序,并按照排序结果将对应的即时消息转发至对应的接收者。

10.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于:

获取第一标识信息,所述第一标识信息是参与方读到的最后一条消息的标识信息,所述参与方是所述发送者或者接收者,并确定所述参与方对应的消息对范围内已分配的最大标识信息,并将所述最大标识信息与第一标识信息的差值,确定为所述参与方的未读消息数量,以及将第一范围内的即时消息确定为所述参与方的未读消息,所述第一范围是所述参与方对应的消息对中所述第一标识信息和所述最大标识信息之间的每个标识信息。

11.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于:

存储消息对范围内的最大标识信息对应的即时消息,并在展示最近联系人时,将所述消息对范围内的最大标识信息对应的即时消息,确定为所述消息对对应的最近联系人的最后一条即时消息。

12.根据权利要求8所述的装置,其特征在于,还包括:

确定所述消息处理中心的标识信息,所述消息处理中心用于为所述消息对范围内的所述即时消息分配一个标识信息,并根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理。

13.根据权利要求12所述的装置,其特征在于,所述确定所述消息处理中心的标识信息,包括:采用如下公式计算所述消息处理中心的标识信息:

ID=(UIN1*UIN2)%N

其中,ID是消息处理中心的标识信息,UIN1表示发送者标识信息和接收者标识信息中的最小值,UIN2是发送者标识信息和接收者标识信息中的最大值,N表示所述消息处理中心的总数。

14.根据权利要求13所述的装置,其特征在于,当所述即时消息类型是多人即时通信时,在计算所述ID时将所述发送者的标识置为1。

说明书 :

即时消息的处理方法和装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种即时消息的处理方法和装置。

背景技术

[0002] 在即时通信系统中,即时消息的去重、排序和同步是一个难以解决的问题。目前,相关技术中,即时消息的去重、排序和同步主要依赖于即时消息的精确时间。如果即时消息的精确时间相同,则认为即时消息出现了重复。同样地,在进行即时消息的排序时也根据精确时间实现。在进行即时消息同步(即未读即时消息的统计计算)时,即时通信系统只记录下未读即时消息的时间范围,即第一条未读即时消息的精确时间和最后一条未读即时消息的精确时间,遍历即时消息以获取两个准确时间范围内的即时消息作为未读即时消息。
[0003] 相关技术存在的缺陷是,即时消息的去重、排序和同步主要依赖于即时消息的精确时间,无论精确时间是即时通信系统的客户端分配的还是服务器分配的,即时消息路由过程中(即即时消息从发送客户端经由服务器至接收客户端)所有的计算机系统的时钟无法严格一致,从而使得即时消息的去重、排序和同步的结果出现差异。另外,遍历即时消息以获取两个准确时间范围内的即时消息作为未读即时消息,效率低,未读即时消息定位也不精准。

发明内容

[0004] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005] 为此,本发明的第一个目的在于提出一种即时消息的处理方法。该方法能够保证精准性,而且处理效率高。
[0006] 本发明的第二个目的在于提出一种即时消息的处理装置。
[0007] 为了实现上述目的,本发明第一方面实施例的即时消息的处理方法,包括:接收即时通信的发送者发送的即时消息,所述即时消息中包括消息对,所述消息对包括所述发送者的标识信息、所述即时通信的接收者的标识信息和即时消息类型;为所述即时消息分配一个标识信息,所述即时消息的标识信息在所述消息对范围内唯一且根据接收时间依次递增;根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理。
[0008] 本发明实施例的即时消息的处理方法,在一个消息对范围内,为每个即时消息分配一个唯一且依次递增至无穷的标识信息,使得消息对范围内的每个即时消息的标识信息不会出现重复,从而在对消息对范围内的每个即时消息进行处理时,能够保证精准性,而且处理效率高。
[0009] 为了实现上述目的,本发明第二方面实施例的即时消息的处理装置,包括:接收模块,用于接收即时通信的发送者发送的即时消息,所述即时消息中包括消息对,所述消息对包括所述发送者的标识信息、所述即时通信的接收者的标识信息和即时消息类型;第一分配模块,用于为所述即时消息分配一个标识信息,所述即时消息的标识信息在所述消息对范围内唯一且根据接收时间依次递增;处理模块,用于根据所述即时消息的标识信息对所述消息对范围内的即时消息进行处理。
[0010] 本发明实施例的即时消息的处理装置,在一个消息对范围内,为每个即时消息分配一个唯一且依次递增至无穷的标识信息,使得消息对范围内的每个即时消息的标识信息不会出现重复,从而在对消息对范围内的每个即时消息进行处理时,能够保证精准性,而且处理效率高。
[0011] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0012] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0013] 图1是根据本发明一个实施例的即时消息的处理方法的流程图;
[0014] 图2是根据本发明另一个实施例的即时消息的处理方法的流程图;
[0015] 图3(a)(b)(c)是根据本发明实施例的即时消息的处理方法的效果图;
[0016] 图4是根据本发明一个实施例的即时消息的处理装置的结构框图;
[0017] 图5是根据本发明另一个实施例的即时消息的处理装置的结构框图
[0018] 图6是根据本发明又一个实施例的即时消息的处理装置的结构框图。

具体实施方式

[0019] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0020] 在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0021] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0022] 下面参考附图描述根据本发明实施例的即时消息的处理方法。
[0023] 图1是根据本发明一个实施例的即时消息的处理方法的流程图。
[0024] 如图1所示,该即时消息的处理方法包括:
[0025] S101,接收即时通信的发送者发送的即时消息,即时消息中包括消息对,消息对包括发送者的标识信息、即时通信的接收者的标识信息和即时消息类型。
[0026] 其中,即时通信的服务器接收即时通信的发送者发送的即时消息,每个经过服务器的即时消息都包括消息对。
[0027] S102,为即时消息分配一个标识信息,即时消息的标识信息在消息对范围内唯一且根据接收时间依次递增。
[0028] 其中,服务器为即时消息分配一个标识信息,标识信息可以是ID。在一个消息对范围内,即时消息的标识信息以某个基数(如1)开始,依次递增。如,服务器依次接收到的一个消息对范围内的即时消息为msg0、msg1和msg2,如果基数为1,则msg0的ID为1,msg1的ID为2,msg2的ID为3,该消息对范围内后来的即时消息的ID就是4、5、6等,依次递增至无穷。
[0029] S103,根据即时消息的标识信息对消息对范围内的即时消息进行处理。
[0030] 例如,处理可包括以下至少一种:对消息对范围内的即时消息进行排序;获取未读即时消息;存储消息对范围内的最大标识信息对应的即时消息等。将在后续实施例中详细叙述每个处理过程。
[0031] 本发明实施例的即时消息的处理方法,在一个消息对范围内,为每个即时消息分配一个唯一且依次递增至无穷的标识信息,使得消息对范围内的每个即时消息的标识信息不会出现重复,从而在对消息对范围内的每个即时消息进行处理时,能够保证精准性,而且处理效率高。
[0032] 图2是根据本发明另一个实施例的即时消息的处理方法的流程图。
[0033] 即时消息在发送的过程中,可能由于网络环境的影响,存在重复发送的情况,为了保证即时消息的唯一性,需要对这种情况进行处理。具体地,如图2所示,该即时消息的处理方法包括:
[0034] S201,接收即时通信的发送者发送的即时消息,即时消息中包括消息对,消息对包括发送者的标识信息、即时通信的接收者的标识信息和即时消息类型。
[0035] 其中,即时通信的服务器接收即时通信的发送者发送的即时消息,每个经过服务器的即时消息都包括消息对。
[0036] 在本发明的一个实施例中,即时消息中还包括产生时间。
[0037] S202,根据消息对和产生时间,确定是否已存在第一消息,第一消息是与即时消息具有相同消息对和产生时间的即时消息。
[0038] 具体地,即时消息的产生时间即为在客户端被用户编辑之后的时间,即时消息的产生时间不同于发送时间以及接收时间,具有唯一性。
[0039] S203,在确定已存在第一消息时,丢弃即时消息。
[0040] S204,在确定不存在第一消息时,为即时消息分配一个标识信息,即时消息的标识信息在消息对范围内唯一且根据接收时间依次递增。
[0041] S205,根据即时消息的标识信息对消息对范围内的即时消息进行处理。
[0042] 本发明实施例的即时消息的处理方法,根据产生时间对即时消息进行去重,可保证即时消息的唯一性,从而在后续的处理中进一步保证精准性。
[0043] 其中,根据即时消息的标识信息对消息对范围内的即时消息进行处理(即S103或S205)具体包括以下至少一种:对消息对范围内的即时消息进行排序;获取未读即时消息;存储消息对范围内的最大标识信息对应的即时消息等。图3(a)(b)(c)是根据本发明实施例的即时消息的处理方法的效果图,下面结合附图3分别进行详细介绍。
[0044] 在本发明的一个实施例中,根据即时消息的标识信息对消息对范围内的即时消息进行处理具体包括:根据即时消息的标识信息对消息对范围内的即时消息进行排序,并按照排序结果将对应的即时消息转发至对应的接收者。具体地,如图3(a)所示,为根据即时消息的标识信息对消息对范围内的即时消息进行排序之后,在客户端进行展现的效果图,根据本发明实施例的方法,在客户端展现的即时消息能够保证唯一性。
[0045] 在本发明的另一个实施例中,根据即时消息的标识信息对消息对范围内的即时消息进行处理具体包括:首先,获取第一标识信息,第一标识信息是参与方读到的最后一条消息的标识信息,参与方是发送者或者接收者,并确定参与方对应的消息对范围内已分配的最大标识信息;然后,将最大标识信息与第一标识信息的差值,确定为参与方的未读消息数量;然后,将第一范围内的即时消息确定为参与方的未读消息,第一范围是参与方对应的消息对中第一标识信息和最大标识信息之间的每个标识信息。例如,服务器记录参与方读到的最后一条消息的标识信息为peer-last-msg-ID,对应的消息对范围内已分配的最大标识信息为max-msg-ID,如果服务器判断peer-last-msg-ID和max-msg-ID不等,则max-msg-ID和peer-last-msg-ID的差值为参与方的未读消息数量,而介于max-msg-ID和peer-last-msg-ID之间的每个标识信息分别为每个未读消息的标识信息,即可以直接知道未读消息的标识信息,服务器能够直接读取对应的未读消息。具体地,如图3(b)所示,为参与方的未读消息在客户端进行展现的效果图。
[0046] 在本发明的又一个实施例中,根据即时消息的标识信息对消息对范围内的即时消息进行处理具体包括:存储消息对范围内的最大标识信息对应的即时消息;在展示最近联系人时,将消息对范围内的最大标识信息对应的即时消息,确定为消息对对应的最近联系人的最后一条即时消息。具体地,如图3(c)所示,为消息对对应的最近联系人的最后一条即时消息在客户端进行展现的效果图。
[0047] 为了实现上述实施例,在本发明的一个实施例中,该即时消息的处理方法还包括(图中未示出):为消息对分配一个消息处理中心并确定消息处理中心的标识信息,消息处理中心用于为消息对范围内的即时消息分配一个标识信息,并根据即时消息的标识信息对消息对范围内的即时消息进行处理。具体地,服务器为每个消息对分配一个消息处理中心(Message Processing Center,MPC),让消息对内的每个即时消息都经过消息处理中心,通过消息处理中心实现即时消息的标识信息分配和处理。
[0048] 其中,服务器可以设置多个消息处理中心,为每个消息处理中心分配一个标识信息,在本发明的一个实施例中,当即时消息经过服务器时,服务器即可知道每个即时消息对应的消息对所对应的消息处理中心。具体地,在本发明的一个实施例中,确定消息处理中心的标识信息,包括:
[0049] 采用如下公式计算消息处理中心的标识信息:
[0050] ID=(UIN1*UIN2)%N
[0051] 其中,ID是消息处理中心的标识信息,UIN1表示发送者标识信息和接收者标识信息中的最小值,UIN2是发送者标识信息和接收者标识信息中的最大值,N表示“虚拟”消息处理中心的总数。
[0052] 在实际中,消息处理中心具有“虚拟”和“物理”之分,虚拟消息处理中心数目固定,而物理消息处理中心可以根据实际扩容需要进行增减,二者之间因为数目不对等存在着一定的映射关系。
[0053] 首先,根据上述公式计算出虚拟消息处理中心的标识信息,然后,根据虚拟标识信息与物理标识信息的映射关系,找到物理消息处理中心的标识信息。例如,虚拟消息处理中心有10000个,其标识分别为0、1、2、3、...9999,而物理消息处理中心只有10个,其标识分别为0、1、2、3、...9,则每个物理消息处理中心对应1000个虚拟消息处理中心,标识为0的物理消息处理中心对应的虚拟消息处理中心的标识范围为0-999,依次类推,标识为9的物理消息中心对应的虚拟消息处理中心标识范围为9000-9999。
[0054] 另外,在本发明的一个实施例中,当即时消息类型是多人即时通信时,在计算ID时将发送者的标识置为1。
[0055] 本发明实施例的即时消息的处理方法,通过消息处理中心处理消息对内的即时消息,可伸缩性和容错性好,新添加的消息处理中心不仅与服务器原有的模块兼容,而且完成了即时消息去重、排序、同步和拉取最后一条消息等功能,效益显著。
[0056] 在本发明的一个实施例中,为即时消息分配一个标识信息,包括:从预先存储的消息标识数据库MID中获取至少一个的标识,并在获取的至少一个的标识中为即时消息分配一个标识信息,并在分配完后,再从预先存储的MID中获取至少一个的标识。例如,MID中存储了处理的消息对,和该消息对的最后一条即时消息的标识信息,如ID为10,当接收到即时消息并需要为其分配一个标识信息时,可以从MID获取到11、12、…、20,并以此为即时消息分配一个,当10个ID分配完之后,再从MID中读取10个ID,如21、22、…、30,以此类推。这样做的好处是减少服务器压力。
[0057] 为了实现上述实施例,本发明的实施例还提出一种即时消息的处理装置。
[0058] 图4是根据本发明一个实施例的即时消息的处理装置的结构框图。
[0059] 如图4所示,即时消息的处理装置100包括:接收模块110、第一分配模块120和处理模块130。
[0060] 具体地,接收模块110用于接收即时通信的发送者发送的即时消息,即时消息中包括消息对,消息对包括发送者的标识信息、即时通信的接收者的标识信息和即时消息类型。
[0061] 第一分配模块120用于为即时消息分配一个标识信息,即时消息的标识信息在消息对范围内唯一且根据接收时间依次递增。其中,标识信息可以是ID。在一个消息对范围内,即时消息的标识信息以某个基数(如1)开始,依次递增。如,接收模块110依次接收到的一个消息对范围内的即时消息为msg0、msg1和msg2,如果基数为1,则第一分配模块120分配的标识信息:msg0的ID为1,msg1的ID为2,msg2的ID为3,该消息对范围内后来的即时消息的ID就是4、5、6等,依次递增至无穷。
[0062] 处理模块130用于根据即时消息的标识信息对消息对范围内的即时消息进行处理。例如,处理可包括以下至少一种:对消息对范围内的即时消息进行排序;获取未读即时消息;存储消息对范围内的最大标识信息对应的即时消息等。将在后续实施例中详细叙述每个处理过程。
[0063] 本发明实施例的即时消息的处理装置,在一个消息对范围内,为每个即时消息分配一个唯一且依次递增至无穷的标识信息,使得消息对范围内的每个即时消息的标识信息不会出现重复,从而在对消息对范围内的每个即时消息进行处理时,能够保证精准性,而且处理效率高。
[0064] 图5是根据本发明另一个实施例的即时消息的处理装置的结构框图。
[0065] 如图5所示,即时消息的处理装置100包括:接收模块110、第一分配模块120、处理模块130、确定模块140和丢弃模块150。
[0066] 具体地,即时消息中还包括产生时间,确定模块140用于在为即时消息分配一个标识信息之前,根据消息对和产生时间,确定是否已存在第一消息,第一消息是与即时消息具有相同消息对和产生时间的即时消息。丢弃模块150用于在确定已存在第一消息时,丢弃即时消息。
[0067] 更具体地,即时消息的产生时间即为在客户端被用户编辑之后的时间,即时消息的产生时间不同于发送时间以及接收时间,具有唯一性。因此,在确定模块140确定已存在第一消息时丢弃即时消息,在确定不存在第一消息时为即时消息分配一个标识信息,可保证即时消息的唯一性,从而在后续的处理中进一步保证精准性。
[0068] 在本发明的一个实施例中,处理模块130具体用于:根据即时消息的标识信息对消息对范围内的即时消息进行排序,并按照排序结果将对应的即时消息转发至对应的接收者。具体可参考方法实施例进行理解,在此不再赘述。
[0069] 在本发明的另一个实施例中,处理模块130具体用于:获取第一标识信息,第一标识信息是参与方读到的最后一条消息的标识信息,参与方是发送者或者接收者,并确定参与方对应的消息对范围内已分配的最大标识信息,并将最大标识信息与第一标识信息的差值,确定为参与方的未读消息数量,以及将第一范围内的即时消息确定为参与方的未读消息,第一范围是参与方对应的消息对中第一标识信息和最大标识信息之间的每个标识信息。具体可参考方法实施例进行理解,在此不再赘述。
[0070] 在本发明的又一个实施例中,处理模块130具体用于:存储消息对范围内的最大标识信息对应的即时消息,并在展示最近联系人时,将消息对范围内的最大标识信息对应的即时消息,确定为消息对对应的最近联系人的最后一条即时消息。具体可参考方法实施例进行理解,在此不再赘述。
[0071] 图6是根据本发明又一个实施例的即时消息的处理装置的结构框图。
[0072] 如图6所示,即时消息的处理装置100包括:接收模块110、第一分配模块120、处理模块130、确定模块140、丢弃模块150和第二分配模块160。
[0073] 具体地,第二分配模块160用于为消息对分配一个消息处理中心并确定消息处理中心的标识信息,消息处理中心用于为消息对范围内的即时消息分配一个标识信息,并根据即时消息的标识信息对消息对范围内的即时消息进行处理。其中,为每个消息对分配一个消息处理中心(Message Processing Center,MPC),让消息对内的每个即时消息都经过消息处理中心,通过消息处理中心实现即时消息的标识信息分配和处理。
[0074] 其中,可以设置多个消息处理中心,为每个消息处理中心分配一个标识信息,具体地,在本发明的一个实施例中,确定消息处理中心的标识信息,包括:
[0075] 采用如下公式计算消息处理中心的标识信息:
[0076] ID=(UIN1*UIN2)%N
[0077] 其中,ID是消息处理中心的标识信息,UIN1表示发送者标识信息和接收者标识信息中的最小值,UIN2是发送者标识信息和接收者标识信息中的最大值,N表示消息处理中心的总数。
[0078] 另外,在本发明的一个实施例中,当即时消息类型是多人即时通信时,在计算ID时将发送者的标识置为1。
[0079] 本发明实施例的即时消息的处理装置,通过消息处理中心处理消息对内的即时消息,可伸缩性和容错性好,新添加的消息处理中心不仅与服务器原有的模块兼容,而且完成了即时消息去重、排序、同步和拉取最后一条消息等功能,效益显著。
[0080] 在本发明的一个实施例中,第一分配模块120具体用于:从预先存储的消息标识数据库MID中获取至少一个的标识,并在获取的至少一个的标识中为即时消息分配一个标识信息,并在分配完后,再从预先存储的MID中获取至少一个的标识。例如,MID中存储了处理的消息对,和该消息对的最后一条即时消息的标识信息,如ID为10,当接收到即时消息并需要为其分配一个标识信息时,可以从MID获取到11、12、…、20,并以此为即时消息分配一个,当10个ID分配完之后,再从MID中读取10个ID,如21、22、…、30,以此类推。这样做的好处是减少服务器压力。
[0081] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0082] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0083] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。