CN105812235B - 消息处理方法、装置及*** - Google Patents
消息处理方法、装置及*** Download PDFInfo
- Publication number
- CN105812235B CN105812235B CN201610123750.7A CN201610123750A CN105812235B CN 105812235 B CN105812235 B CN 105812235B CN 201610123750 A CN201610123750 A CN 201610123750A CN 105812235 B CN105812235 B CN 105812235B
- Authority
- CN
- China
- Prior art keywords
- message
- sequence number
- client
- server
- received
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种消息处理方法、装置及***。一方面,本发明实施例通过在即时通讯场景中,客户端接收服务器发送的消息以及消息的序号;从而,所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,并根据所述判断结果输出所述消息。因此,本发明实施例提供的技术方案中对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,能够解决现有技术中即时通讯场景下消息的获取方式可靠性比较低以及获取成本比较高的问题。
Description
【技术领域】
本发明涉及通信技术领域,尤其涉及一种消息处理方法、装置及***。
【背景技术】
随着互联网用户的***式增长以及互联网技术的飞速发展,即时通讯场景具有两个巨大变化,一个是从传统的较为稳定可靠的计算机网络向非稳定可靠但便捷的移动网络转移,另一个是从一对一的即时通讯向群组中通讯转移。
现有技术中,在即时通讯场景中,为了保证客户端与服务器之间消息的一致性,服务器需要通过长连接主动向客户端发送有新消息产生的通知,但不携带消息内容,客户端在收到该通知后,再通过长连接从服务器主动拉取该消息内容。
然而,现有技术中客户端获取每个新消息都需要与服务器之间进行两次网络交互,其中一次交互失败都将导致客户端无法获取新消息,且两次网络交互会消耗较多数据流量,因此现有技术中即时通讯场景下消息的获取方式可靠性比较低,获取成本比较高。
【发明内容】
有鉴于此,本发明实施例提供了一种消息处理方法、装置及***,用以解决现有技术中即时通讯场景下消息的获取方式可靠性比较低以及获取成本比较高的问题。
本发明实施例的一方面,提供一种消息处理方法,包括:
在即时通讯场景中,客户端接收服务器发送的消息以及消息的序号;
所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果;
所述客户端根据所述判断结果输出所述消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述客户端根据所述判断结果输出所述消息,包括:
若判断出所述消息的序号与接收到的上一个消息的序号连续且递增,所述客户端输出所述消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
若判断出所述消息的序号与接收到的上一个消息的序号不连续,所述客户端从所述服务器获取未收到的消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述客户端从所述服务器获取未收到的消息,包括:
所述客户端向所述服务器发送接收到的最大序号和消息所在群组的标识,以便于所述服务器根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息,以及向所述客户端对应返回各序号以及各消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述客户端向所述服务器发送接收到的最大序号和消息所在群组的标识,包括:
所述客户端进行计时;
若所述客户端检测到计时时长达到指定时长,所述客户端向所述服务器发送接收到的最大序号和消息所在群组的标识。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
所述客户端对已收到的消息与所述服务器返回的各消息进行去重;
所述客户端输出去重后获得的消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
所述客户端根据所述服务器返回的各序号,进行最大序号的更新。
本发明实施例的一方面,提供一种消息处理方法,包括:
在即时通讯场景中,服务器获得消息以及消息的序号;
所述服务器向客户端发送所述消息以及所述消息的序号,以便于所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及,根据所述判断结果输出所述消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
所述服务器接收最大序号和消息所在群组的标识;其中,所述最大序号和所述消息所在群组的标识为所述客户端在判断出所述消息的序号与接收到的上一个消息的序号不连续后发送的;
所述服务器根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息;
所述服务器向所述客户端对应返回各序号以及各消息。
本发明实施例的一方面,提供一种消息处理装置,包括:
接收单元,用于在即时通讯场景中,接收服务器发送的消息以及消息的序号;
判断单元,用于判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果;
处理单元,用于根据所述判断结果输出所述消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述处理单元,具体用于:
若所述判断单元判断出所述消息的序号与接收到的上一个消息的序号连续且递增,输出所述消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述处理单元,具体用于:
若所述判断单元判断出所述消息的序号与接收到的上一个消息的序号不连续,从所述服务器获取未收到的消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述处理单元用于从所述服务器获取未收到的消息时,具体用于:
向所述服务器发送接收到的最大序号和消息所在群组的标识,以便于所述服务器根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息,以及对应返回各序号以及各消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述处理单元用于向所述服务器发送接收到的最大序号和消息所在群组的标识时,具体用于:
进行计时;
若检测到计时时长达到指定时长,向所述服务器发送接收到的最大序号和消息所在群组的标识。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述处理单元,还用于:
对已收到的消息与所述服务器返回的各消息进行去重;
输出去重后获得的消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述处理单元,还用于:
根据所述服务器返回的各序号,进行最大序号的更新。
本发明实施例的一方面,提供一种消息处理装置,包括:
获取单元,用于在即时通讯场景中,获得消息以及消息的序号;
发送单元,用于向客户端发送所述消息以及所述消息的序号,以便于所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及,根据所述判断结果输出所述消息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:
接收单元,用于接收最大序号和消息所在群组的标识;其中,所述最大序号和所述消息所在群组的标识为所述客户端在判断出所述消息的序号与接收到的上一个消息的序号不连续后发送的;
处理单元,用于根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息;
所述发送单元,还用于向所述客户端对应返回各序号以及各消息。
本发明实施例的一方面,提供一种消息处理***,包括:
客户端,包括上述第一方面所述的消息处理装置;
服务器,包括上述第二方面所述的消息处理装置。
由以上技术方案可以看出,本发明实施例具有以下有益效果:
本发明实施例提供的技术方案中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,可以节省数据流量,降低了获取消息的成本,也降低了服务器的处理压力和负担,解决了现有技术中即时通讯场景下消息的获取方式可靠性比较低以及获取成本比较高的问题。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例所提供的消息处理方法的实施例一的流程示意图;
图2是本发明实施例所提供的客户端根据消息的序号以及接收到的上一个消息的序号输出消息的方法的流程实例图;
图3是本发明实施例所提供的消息处理方法的实施例二的流程示意图;
图4是本发明实施例所提供的消息处理方法的实施例三的流程示意图;
图5是本发明实施例所提供的消息处理装置的实施例一的功能方块图;
图6是本发明实施例所提供的消息处理装置的实施例二的功能方块图;
图7是本发明实施例所提供的消息处理***的结构示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
实施例一
本发明实施例给出一种消息处理方法,该方法是客户端侧实现消息处理的方法。请参考图1,其为本发明实施例所提供的消息处理方法的实施例一的流程示意图,如图所示,该方法包括以下步骤:
S101,在即时通讯场景中,客户端接收服务器发送的消息以及消息的序号。
具体的,服务器在接收到某客户端发送的消息后,需要将该消息发送给与该客户端处于同一群组的其他客户端。本发明实施例中,在将消息提供给客户端的过程中,服务器不是先向客户端发送通知,然后再通过第二次网络交互向客户端提供消息,而是服务器直接将消息发送给客户端。
另外,服务器为每个群组分别维护一个自增标识(Sequence Identification,SID),该自增标识可以随着该群组中消息数目的增加而自动增加,本发明实施例中,使用该自增标识作为该群组中每个消息的序号,用于保证群组中消息的有序性和消息传输的可靠性。相当于,服务器在每收到一个消息后就根据自增标识,为该消息分配一个序号。本发明实施例中,服务器在向客户端发送消息的同时,需要将该消息的序号一并发送给客户端。
需要说明的是,本发明实施例中,所述消息指的是即时通信场景下客户端通过服务器发送给另一个客户端的新消息,例如,用户在使用即时通讯工具的客户端时,利用该即时通讯工具的客户端发送给使用该即时通讯工具的客户端的其他用户的聊天消息。
S102,所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果。
S103,所述客户端根据所述判断结果输出所述消息。
实施例二
基于上述实施例一所提供的消息处理方法,本发明实施例对S102和S103中所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及根据所述判断结果输出所述消息的方法进行具体描述。该步骤具体可以包括:
客户端可以从服务器接收消息以及消息的序号,且客户端为每个群组维护一个对应的最大序号,当客户端向用户输出了该消息后,可以根据该消息的序号进行最大序号的更新。
本发明实施例中,客户端在接收到服务器发送的消息以及消息的序号之后,所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及根据所述判断结果输出所述消息。
请参考图2,其为本发明实施例所提供的客户端根据消息的序号以及接收到的上一个消息的序号输出消息的方法的流程实例图,如图所示,客户端根据所述消息的序号以及接收到的上一个消息的序号,输出所述消息的方法可以包括但不限于以下步骤:
S201,客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,若判断出所述消息的序号与接收到的上一个消息的序号连续且递增,执行S202。反之,若判断出所述消息的序号与接收到的上一个消息的序号不连续,执行S203。
具体的,客户端判断本次接收到的消息的序号与接收到的上一个消息的序号是否连续且递增,如果判断出本次接收到的消息的序号与接收到的上一个消息的序号连续且递增,表示各消息的序号可以对齐,客户端接收到的各消息的顺序没有发生错乱,则执行S202。
反之,如果判断出本次接收到的消息的序号与接收到的上一个消息的序号不连续,表示各消息的序号没有对齐,客户端接收到的消息的顺序发生错乱,客户端发现有未收到的消息,则执行S203。
例如,客户端本次接收到的是消息3和序号3,上一次接收到的是消息2和序号2,则客户端发现本次接收到的消息的序号3与上一次接收到的消息的序号2连续且递增,则客户端确定接收的消息的顺序没有发生错乱。
或者,又例如,若客户端本次接收到的是消息4和序号4,上一次接收到的是消息2和序号2,则客户端发现本次接收到的消息的序号4与上一次接收到的消息的序号2没有连续,则客户端确定接收的消息的顺序发生错乱,其中消息3和序号3还没有接收到。
可以理解的是,客户端没有接收到消息以及消息的序号的原因可能是移动网络异常导致消息以及序号丢失,或者也可能是消息以及消息的序号正在传输过程中,还没有被客户端接收到。
S202,所述客户端输出所述消息。
具体的,当客户端本次接收到的消息的序号与接收到的上一个消息的序号是连续且递增时,客户端可以输出本次接收到的消息。
另外,客户端还需要利用本次接收到的消息的序号对记录的最大序号进行更新,已保证最大序号的准确性。
在一个具体的实现过程中,若该消息是文本格式,则客户端可以显示该消息。或者,若该消息是语音格式,则客户端可以播放该消息。
进一步的,客户端还可以对本次收到的消息进行本地存储。
S203,所述客户端从所述服务器获取未收到的消息。
具体的,当客户端判断出本次接收到的消息的序号与接收到的上一个消息的序号不是连续时,所述客户端向所述服务器发送接收到的最大序号和消息所在群组的标识(Group Identification,GID)。这样,所述服务器可以根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息,以及向所述客户端对应返回各序号以及各消息。
在一个具体的实现过程中,所述客户端也可以在判断出本次接收到的消息的序号与接收到的上一个消息的序号不是连续时,进行计时,当检测到计时时长达到指定时长后,若所述客户端还没有接收到之前认为未收到的消息,所述客户端才向所述服务器发送接收到的最大序号和消息所在群组的标识。
需要说明的是,服务器中***分布式处理消息时,很容易出现不按照理想顺序将消息投递到客户端上的情况,例如,将先收到的图片与之后收到的文本消息进行同时发送,而文本消息的传递时间短,图片的传递时间长,客户端很有可能先收到消息,后收到图片。因此,为了避免这种情况下客户端利用最大序号以及消息所在群组的标识,从服务器重新获取未收到的消息,本发明实施例中,客户端可以在判断出本次接收到的消息的序号与接收到的上一个消息的序号不是连续时,先进行计时,若达到指定时长还没有收到之前未收到的消息,再从服务器重新请求获取未收到的消息,以实现消息的修复。如此,可以避免由于客户端在没收到消息后与服务器再次进行交互,给服务器带来的较大处理压力的问题。
例如,所述客户端维护的指定时长可以是1秒钟。
可选地,在本实施例的一个可能的实现方式中,客户端在从服务器接收到各序号以及对应的各消息之后,所述客户端可以根据对之前已收到的消息与所述服务器本次返回的各消息进行去重,然后所述客户端输出去重后获得的消息。
可选地,在本实施例的一个可能的实现方式中,所述客户端还需要根据所述服务器返回的各序号,进行最大序号的更新。
需要说明的是,由于会存在客户端主动从服务器拉取消息,以及服务器主动向客户端推送消息的情况,本发明实施例中,在存在拉取和推送两种情况并存时,规定已最先收到的消息为准。
本发明的上述实施例中,即时通讯场景中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,保证了消息的及时投递,提高了客户端获取消息的可靠性。而且,一次网络交互就可以获取消息,可以节省数据流量,降低了获取消息的成本,也降低了服务器的处理压力和负担。
另外,由于即时通讯场景越来越多的应用非稳定可靠但便捷的移动网络,利用移动网络进行通信需要耗费流量。基于此,本发明上述实施例中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,因此减少了客户端与服务器的交互次数,节省流量。
而且,移动网络的稳定性比较低,如果使用两次交互才能获得消息,一旦由于移动网络的不稳定导致一次交互失败都会导致客户端无法获取新消息,基于此,本发明上述实施例中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,因此避免了由于移动网络的稳定性带来的获取消息失败的问题,提高了移动弱网环境下的通信可靠性。
另外,本发明上述实施例还可以实现在消息未收到的情况下,通过修复手段进行一次消息重新获取,不会给服务器增加较大的压力,还能够实现丢失消息的补偿,进一步提高了移动弱网情况下即时通讯场景中消息获取的可靠性。而且,本发明实施例客户端与服务器的实现过程都比较简单,不需要消耗较大成本改进客户端与服务器,降低了改进成本。
实施例三
本发明实施例还给出一种消息处理方法,该方法是服务器侧实现消息处理的方法。请参考图3,其为本发明实施例所提供的消息处理方法的实施例二的流程示意图,如图所示,该方法包括以下步骤:
S301,在即时通讯场景中,服务器获得消息以及消息的序号。
S302,所述服务器向客户端发送所述消息以及所述消息的序号,以便于所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及,根据所述判断结果输出所述消息。
在一个具体的实现过程中,服务器可以接收到客户端发送的消息,服务器可以为每个群组维护一个自增标识,该自增标识可以随着群组中消息的增加而自动增加,然后就可以作为该群组中每个消息的序号,用于保证群组中消息的有序性和消息传输的可靠性。服务器在收到消息之后,需要利用自增标识,为每个消息分配一个序号,然后将该序号与需要发送的消息一并发送给客户端,这样,客户端就可以获得该消息以及消息的序号。
进一步的,客户端可以根据服务器发送的消息以及消息的序号,进行消息的输出。在该过程中,客户端需要先判断本次接收到的消息的序号与上一次接收到的消息的序号是否连续且递增,若客户端判断出本次接收到的消息的序号与上一次接收到的消息的序号不连续,客户端需要向所述服务器发送接收到的最大序号和消息所在群组的标识(GroupIdentification,GID)。这样,所述服务器就接收到客户端发送的最大序号和消息所在群组的标识。
进一步的,所述服务器在接收最大序号和消息所在群组的标识之后,可以根据所述消息所在群组的标识,获取消息所在群组的所有消息,然后,利用该最大序号,从消息所在群组的各消息中获取该最大序号之后的各序号以及各序号对应的消息。最后,所述服务器需要向所述客户端对应返回获取的各序号以及各消息。
本发明的上述实施例中,即时通讯场景中,对于每个需要分发给客户端的消息,只需要一次网络交互,服务器就可以将消息内容提供给客户端,保证了消息的及时投递,提高了客户端获取消息的可靠性。而且,一次网络交互就可以获取消息,可以为客户端节省数据流量,降低了客户端获取消息的成本,而且还可以降低服务器的处理压力和负担。
另外,由于即时通讯场景越来越多的应用非稳定可靠但便捷的移动网络,利用移动网络进行通信需要耗费流量。基于此,本发明上述实施例中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,因此减少了客户端与服务器的交互次数,节省流量。
而且,移动网络的稳定性比较低,如果使用两次交互才能获得消息,一旦由于移动网络的不稳定导致一次交互失败都会导致客户端无法获取新消息,基于此,本发明上述实施例中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,因此避免了由于移动网络的稳定性带来的获取消息失败的问题,提高了移动弱网环境下的通信可靠性。
另外,本发明上述实施例还可以实现在消息未收到的情况下,通过修复手段进行一次消息重新获取,不会给服务器增加较大的压力,还能够实现丢失消息的补偿,进一步提高了移动弱网情况下即时通讯场景中消息获取的可靠性。而且,本发明实施例客户端与服务器的实现过程都比较简单,不需要消耗较大成本改进客户端与服务器,降低了改进成本。
实施例四
本实施例是消息处理的方法的具体实施例。请参考图4,其为本发明实施例所提供的消息处理方法的实施例三的流程示意图,如图所示,该方法包括以下步骤:
S401,服务器从其他客户端获得消息1,然后服务器为该消息1分配消息的序号,如序号1,最后,服务器将消息1和序号1发送给客户端,客户端正常接收到消息1和序号1。
S402,服务器从其他客户端获得消息2,然后服务器为该消息2分配消息的序号,如序号2,最后,服务器将消息2和序号2发送给客户端,客户端正常接收到消息2和序号2。
S403,服务器从其他客户端获得消息3,然后服务器为该消息3分配消息的序号,如序号3,最后,服务器将消息3和序号3发送给客户端,但是,客户端没有接收到消息3和序号3。
S404,服务器从其他客户端获得消息4,然后服务器为该消息4分配消息的序号,如序号4,最后,服务器将消息4和序号4发送给客户端,客户端正常接收到消息4和序号4。
S405,客户端在收到消息4和序号4之后,根据序号4和上一次收到的消息的序号2,则判断出所述消息的序号4与接收到的上一个消息的序号2不连续,客户端接收的消息的顺序发生错乱,客户端发现未收到的消息3。
S406,客户端进行计时,当计时时长到达1秒钟后,客户端向服务器发送接收到的最大序号和消息所在群组的标识GID,如该最大序号为序号2。
S407,服务器接收客户端发送的最大序号和消息所在群组的标识,根据序号2获取序号2之后的各序号以及各序号对应的消息,如序号3与消息3、序号4与消息4、序号5与消息5。服务器将序号3与消息3、序号4与消息4、序号5与消息5发送给客户端。
本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
请参考图5,其为本发明实施例所提供的消息处理装置的实施例一的功能方块图。如图所示,该装置位于客户端,该装置包括:
接收单元50,用于在即时通讯场景中,接收服务器发送的消息以及消息的序号;
判断单元51,用于判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果;
处理单元52,用于根据所述判断结果输出所述消息。
在一个具体的实现过程中,所述处理单元52,具体用于:
若所述判断单元判断出所述消息的序号与接收到的上一个消息的序号连续且递增,输出所述消息。
在一个具体的实现过程中,所述处理单元52,具体用于:
若所述判断单元判断出所述消息的序号与接收到的上一个消息的序号不连续,从所述服务器获取未收到的消息。
在一个具体的实现过程中,所述处理单元52用于从所述服务器获取未收到的消息时,具体用于:
向所述服务器发送接收到的最大序号和消息所在群组的标识,以便于所述服务器根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息,以及对应返回各序号以及各消息。
在一个具体的实现过程中,所述处理单元52用于向所述服务器发送接收到的最大序号和消息所在群组的标识时,具体用于:
进行计时;
若检测到计时时长达到指定时长,向所述服务器发送接收到的最大序号和消息所在群组的标识。
可选的,所述处理单元52,还用于:
对已收到的消息与所述服务器返回的各消息进行去重;
输出去重后获得的消息。
可选的,所述处理单元52,还用于:
根据所述服务器返回的各序号,进行最大序号的更新。
由于本实施例中的各单元能够执行图1和图2所示的方法,本实施例未详细描述的部分,可参考对图1和图2的相关说明。
请参考图6,其为本发明实施例所提供的消息处理装置的实施例二的功能方块图。如图所示,该装置位于服务器,该装置包括:
获取单元60,用于在即时通讯场景中,获得消息以及消息的序号;
发送单元61,用于向客户端发送所述消息以及所述消息的序号,以便于所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及,根据所述判断结果输出所述消息。
可选的,所述装置还包括:
接收单元62,用于接收最大序号和消息所在群组的标识;其中,所述最大序号和所述消息所在群组的标识为所述客户端在判断出所述消息的序号与接收到的上一个消息的序号不连续后发送的;
处理单元63,用于根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息;
所述发送单元61,还用于向所述客户端对应返回各序号以及各消息。
由于本实施例中的各单元能够执行图3所示的方法,本实施例未详细描述的部分,可参考对图3的相关说明。
请参考图7,其为本发明实施例所提供的消息处理***的结构示意图。如图所示,该***包括:
客户端70,包括如上述实施例一所提供的消息处理装置;
服务器71,包括如上述实施例二所提供的消息处理装置。
本发明实施例的技术方案具有以下有益效果:
本发明实施例通过在即时通讯场景中,客户端接收服务器发送的消息以及消息的序号;从而,所述客户端根据所述消息的序号以及接收到的上一个消息的序号,输出所述消息。
本发明实施例提供的技术方案中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,可以节省数据流量,降低了获取消息的成本,也降低了服务器的处理压力和负担,解决了现有技术中即时通讯场景下消息的获取方式可靠性比较低以及获取成本比较高的问题。
另外,由于即时通讯场景越来越多的应用非稳定可靠但便捷的移动网络,利用移动网络进行通信需要耗费流量。基于此,本发明上述实施例中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,因此减少了客户端与服务器的交互次数,节省流量。
而且,移动网络的稳定性比较低,如果使用两次交互才能获得消息,一旦由于移动网络的不稳定导致一次交互失败都会导致客户端无法获取新消息,基于此,本发明上述实施例中,对于每个需要分发给客户端的消息,只需要一次网络交互,客户端就可以从服务器获取消息内容,因此避免了由于移动网络的稳定性带来的获取消息失败的问题,提高了移动弱网环境下的通信可靠性。
另外,本发明上述实施例还可以实现在消息未收到的情况下,通过修复手段进行一次消息重新获取,不会给服务器增加较大的压力,还能够实现丢失消息的补偿,进一步提高了移动弱网情况下即时通讯场景中消息获取的可靠性。而且,本发明实施例客户端与服务器的实现过程都比较简单,不需要消耗较大成本改进客户端与服务器,降低了改进成本。
而且,本发明实施例客户端与服务器的实现过程都比较简单,不需要消耗较大成本改进客户端与服务器,降低了改进成本。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (15)
1.一种消息处理方法,其特征在于,所述方法包括:
在即时通讯场景中,客户端接收服务器直接发送的消息以及消息的序号以完成所述客户端与所述服务器之间的网络交互,其中所述客户端接收每个消息仅与所述服务器之间进行一次所述网络交互;
所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果;
所述客户端根据所述判断结果输出所述消息;
所述客户端若判断出所述消息的序号与接收到的上一个消息的序号不连续,所述客户端进行计时;若所述客户端检测到计时时长达到指定时长后,所述客户端还没有接收到之前认为未收到的消息,所述客户端向所述服务器发送接收到的最大序号和消息所在群组的标识;所述客户端从所述服务器获取未收到的消息以实现丢失消息的补偿。
2.根据权利要求1所述的方法,其特征在于,所述客户端根据所述判断结果输出所述消息,包括:
若判断出所述消息的序号与接收到的上一个消息的序号连续且递增,所述客户端输出所述消息。
3.根据权要求1所述的方法,其特征在于,所述客户端从所述服务器获取未收到的消息,包括:
所述客户端向所述服务器发送接收到的最大序号和消息所在群组的标识,以便于所述服务器根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息,以及向所述客户端对应返回各序号以及各消息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述客户端对已收到的消息与所述服务器返回的各消息进行去重;
所述客户端输出去重后获得的消息。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
所述客户端根据所述服务器返回的各序号,进行最大序号的更新。
6.一种消息处理方法,其特征在于,所述方法包括:
在即时通讯场景中,服务器获得消息以及消息的序号;
所述服务器向客户端直接发送所述消息以及所述消息的序号以完成所述服务器与所述客户端之间的网络交互,以便于所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及,根据所述判断结果输出所述消息,其中所述服务器发送每个消息仅与所述客户端之间进行一次所述网络交互;
所述方法还包括:为实现丢失消息的补偿,所述服务器接收最大序号和消息所在群组的标识;其中,所述最大序号和所述消息所在群组的标识为所述客户端在判断出所述消息的序号与接收到的上一个消息的序号不连续且所述客户端检测到计时时长达到指定时长后发送的。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述服务器根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息;
所述服务器向所述客户端对应返回各序号以及各消息。
8.一种消息处理装置,其特征在于,所述装置包括:
接收单元,用于在即时通讯场景中,接收服务器直接发送的消息以及消息的序号以完成客户端与所述服务器之间的网络交互,其中所述客户端接收每个消息仅与所述服务器之间进行一次所述网络交互;
判断单元,用于判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果;
处理单元,用于根据所述判断结果输出所述消息;若所述判断单元判断出所述消息的序号与接收到的上一个消息的序号不连续,进行计时;若检测到计时时长达到指定时长后,所述客户端还没有接收到之前认为未收到的消息,向所述服务器发送接收到的最大序号和消息所在群组的标识;从所述服务器获取未收到的消息以实现丢失消息的补偿。
9.根据权利要求8所述的装置,其特征在于,所述处理单元,具体用于:
若所述判断单元判断出所述消息的序号与接收到的上一个消息的序号连续且递增,输出所述消息。
10.根据权要求8所述的装置,其特征在于,所述处理单元用于从所述服务器获取未收到的消息时,具体用于:
向所述服务器发送接收到的最大序号和消息所在群组的标识,以便于所述服务器根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息,以及对应返回各序号以及各消息。
11.根据权利要求10所述的装置,其特征在于,所述处理单元,还用于:
对已收到的消息与所述服务器返回的各消息进行去重;
输出去重后获得的消息。
12.根据权利要求10或11所述的装置,其特征在于,所述处理单元,还用于:
根据所述服务器返回的各序号,进行最大序号的更新。
13.一种消息处理装置,其特征在于,所述装置包括:
获取单元,用于在即时通讯场景中,获得消息以及消息的序号;
发送单元,用于向客户端直接发送所述消息以及所述消息的序号以完成服务器与所述客户端之间的网络交互,以便于所述客户端判断所述消息的序号与接收到的上一个消息的序号是否连续且递增,以获得判断结果,以及,根据所述判断结果输出所述消息,其中所述服务器发送每个消息仅与所述客户端之间进行一次所述网络交互;
接收单元,用于为实现丢失消息的补偿而接收最大序号和消息所在群组的标识;其中,所述最大序号和所述消息所在群组的标识为所述客户端在判断出所述消息的序号与接收到的上一个消息的序号不连续且所述客户端检测到计时时长达到指定时长后发送的。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
处理单元,用于根据所述消息所在群组的标识,从所述消息所在群组的各消息中获取所述最大序号之后的各序号以及各序号对应的消息;
所述发送单元,还用于向所述客户端对应返回各序号以及各消息。
15.一种消息处理***,其特征在于,所述***包括:
客户端,包括如权利要求8至12任一所述的消息处理装置;
服务器,包括如权利要求13或14所述的消息处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610123750.7A CN105812235B (zh) | 2016-03-04 | 2016-03-04 | 消息处理方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610123750.7A CN105812235B (zh) | 2016-03-04 | 2016-03-04 | 消息处理方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105812235A CN105812235A (zh) | 2016-07-27 |
CN105812235B true CN105812235B (zh) | 2020-05-29 |
Family
ID=56467625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610123750.7A Active CN105812235B (zh) | 2016-03-04 | 2016-03-04 | 消息处理方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105812235B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656753B (zh) * | 2016-12-08 | 2020-02-21 | 北京五八信息技术有限公司 | 一种im历史消息排序的方法、装置及终端 |
CN108512741A (zh) * | 2018-02-06 | 2018-09-07 | 北京云中融信网络科技有限公司 | 即时通讯方法、装置及*** |
CN108718274A (zh) * | 2018-05-29 | 2018-10-30 | 北京德惠众合信息技术有限公司 | 一种即时通讯消息的防丢失方法 |
CN110008037A (zh) * | 2019-02-28 | 2019-07-12 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置及存储介质 |
CN110166346A (zh) * | 2019-04-25 | 2019-08-23 | 苏宁云计算有限公司 | 一种聊天消息的显示方法及设备 |
CN111327915A (zh) * | 2020-02-21 | 2020-06-23 | 北京字节跳动网络技术有限公司 | 确定消息到达率的方法及装置 |
CN112153037B (zh) * | 2020-09-18 | 2023-07-14 | 北京浪潮数据技术有限公司 | 一种rest请求响应方法、装置、设备及介质 |
CN112367149B (zh) * | 2020-10-28 | 2022-10-14 | 百果园技术(新加坡)有限公司 | 消息获取方法、装置、设备及存储介质 |
CN113014470B (zh) * | 2021-01-07 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 即时通讯应用中会话消息的回执处理方法及装置 |
CN113612679B (zh) * | 2021-07-29 | 2023-02-24 | 百度在线网络技术(北京)有限公司 | 一种消息验证方法、装置、电子设备及存储介质 |
CN114095465A (zh) * | 2021-11-17 | 2022-02-25 | 北京同城必应科技有限公司 | 一种在分布式环境下高效的im消息时序性保障机制实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN103220206A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种消息发送方法、装置和一种消息接收方法、装置 |
CN105100062A (zh) * | 2015-06-25 | 2015-11-25 | 走遍世界(北京)信息技术有限公司 | 信息推送方法、装置及*** |
CN105159657A (zh) * | 2015-06-12 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 处理消息的方法和*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006053019A2 (en) * | 2004-11-08 | 2006-05-18 | Sharpcast, Inc. | Method and apparatus for a file sharing and synchronization system |
CN1794722B (zh) * | 2005-09-19 | 2010-05-05 | 华为技术有限公司 | 一种离线消息发送方法以及即时消息服务器 |
CN103873341B (zh) * | 2012-12-10 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 一种消息处理方法及*** |
-
2016
- 2016-03-04 CN CN201610123750.7A patent/CN105812235B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220206A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种消息发送方法、装置和一种消息接收方法、装置 |
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN105159657A (zh) * | 2015-06-12 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 处理消息的方法和*** |
CN105100062A (zh) * | 2015-06-25 | 2015-11-25 | 走遍世界(北京)信息技术有限公司 | 信息推送方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN105812235A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105812235B (zh) | 消息处理方法、装置及*** | |
US20190014076A1 (en) | Method for Sending Message, Method for Reading and Notifying Message, Method for Receiving Message, and Apparatus | |
US20120323990A1 (en) | Efficient state reconciliation | |
KR101544518B1 (ko) | 마이크로블로그 메시지를 공유하는 방법, 장치 및 시스템 | |
US8719357B2 (en) | Method and apparatus for managing message | |
CN108874946B (zh) | 一种id管理方法及装置 | |
CN101431486A (zh) | 一种即时通信中会话参与人选择方法和装置 | |
US20210044939A1 (en) | Method, Apparatus, and System for Changing Association Relationship Between MCPTT User and MCPTT Group | |
CN104869049B (zh) | 终端信息发送方法和*** | |
CN103546363A (zh) | 一种即时通信消息推送方法、装置及*** | |
CN111277483B (zh) | 一种多端消息的同步方法、服务器及可存储介质 | |
CN103259715A (zh) | 一种管理多人会话的方法、装置及*** | |
CN112839067A (zh) | 一种数据同步方法及装置 | |
EP2974159B1 (en) | Method, device and system for voice communication | |
CN106899605B (zh) | 基于stomp协议的通信方法和装置 | |
CN104506330A (zh) | 一种消息同步方法和*** | |
CN114500633B (zh) | 数据转发方法、相关装置、程序产品及数据传输*** | |
KR20170125252A (ko) | M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법 | |
US9582561B2 (en) | Size-based data synchronization | |
CN105763535B (zh) | 会话消息列表处理方法、设备和*** | |
CN104901865A (zh) | 一种基于全局单调序列号的移动端即时通讯信号同步方法 | |
CN110912805A (zh) | 消息读取状态的同步方法、终端、服务端及*** | |
CN107741994B (zh) | 一种数据更新方法及装置 | |
CN106657172A (zh) | 一种信息推送的实现方法及装置 | |
CN105471719A (zh) | 一种通过云服务器储存技术解决聊天软件在弱信号下通讯问题的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |