CN113014470B - 即时通讯应用中会话消息的回执处理方法及装置 - Google Patents
即时通讯应用中会话消息的回执处理方法及装置 Download PDFInfo
- Publication number
- CN113014470B CN113014470B CN202110022604.6A CN202110022604A CN113014470B CN 113014470 B CN113014470 B CN 113014470B CN 202110022604 A CN202110022604 A CN 202110022604A CN 113014470 B CN113014470 B CN 113014470B
- Authority
- CN
- China
- Prior art keywords
- message
- session
- sequence number
- sending
- state
- 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]
-
- 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/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- 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/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请的实施例揭示了一种即时通讯应用中会话消息的回执处理方法,所述方法包括:获取消息接收方发送的回执请求;根据所述回执请求进行所述会话消息的状态消息更新,所述会话消息的状态消息包括所述消息发送方对于所述会话消息的发送状态消息;完成所述会话消息的状态消息更新后,向所述消息发送方发送通知消息;响应于所述消息发送方针对所述通知消息返回的数据更新请求,获取所述数据更新请求中含有的本地消息序列号;确定所述更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,并将包含有所述差量消息序列号的发送状态消息发送至所述消息发送方。本申请实施例的技术方案能够极大提升会话消息的回执及时性。
Description
技术领域
本申请涉及即时通讯技术领域,具体涉及一种即时通讯应用中会话消息的回执处理方法及装置、电子设备、计算机可读存储介质。
背景技术
即时通讯应用中通常提供有会话消息的回执功能,也即,消息接收方在接收到消息发送方发出的会话消息后,消息发送方能够获知会话消息已经被消息方接收的回执消息,由此提升用户之间通过即时通讯应用进行沟通的效率。但是在现有的回执功能实现方案中,仍存在回执消息无法及时反馈至消息发送方的问题。
发明内容
本申请的实施例提供了一种即时通讯应用中会话消息的回执处理方法及装置、电子设备、计算机可读存储介质,本申请的实施例能够使得消息发送方在发出会话消息后,能够及时地获取到消息接收方对于会话消息的最新处理情况。
根据本申请实施例的一个方面,提供了一种即时通讯应用中会话消息的回执处理方法,包括:获取消息接收方发送的回执请求,所述回执请求是所述消息接收方在接收到消息发送方发出的会话消息之后生成的;根据所述回执请求进行所述会话消息的状态消息更新,所述会话消息的状态消息包括所述消息发送方对于所述会话消息的发送状态消息;完成所述会话消息的状态消息更新后,向所述消息发送方发送通知消息;响应于所述消息发送方针对所述通知消息返回的数据更新请求,获取所述数据更新请求中含有的本地消息序列号,所述本地消息序列号是所述消息发送方获取到的与所述会话消息关联的最大消息序列号;确定所述更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,并将包含有所述差量消息序列号的发送状态消息发送至所述消息发送方,所述包含有所述差量消息序列号的发送状态消息用于表征所述消息接收方对于所述会话消息的最新处理情况。
根据本申请实施例的另一个方面,提供了一种即时通讯应用中会话消息的回执处理方法,包括:显示所述即时通讯应用的会话界面;响应于所述会话界面中触发输入的第一会话消息,将所述第一会话消息发送至所述即时通讯应用中的至少一个消息接收方,并在所述会话界面中显示所述第一会话消息;当接收到后台服务器发送的通知消息时,从本地消息流存储空间中获取所述第一会话消息对应的最大消息序列号,其中,所述通知消息是所述后台服务器根据所述消息接收方针对所述第一会话消息所发送的回执请求,更新所述第一会话消息的状态消息后生成的,所述第一会话消息的状态消息包括消息发送方对于所述第一会话消息的发送状态消息;将所述最大消息序列号作为本地消息序列号,向所述后台服务器发送携带有所述本地消息序列号的数据更新请求,以请求所述后台服务器根据更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,返回包含有所述差量消息序列号的发送状态消息;根据所述后台服务器针对所述数据更新请求所返回的发送状态消息,在所述会话界面更新显示所述第一会话消息对应的回执状态提示信息。
根据本申请实施例的一个方面,提供了一种即时通讯应用中会话消息的回执处理装置,包括:回执请求获取模块,配置为获取消息接收方发送的回执请求,所述回执请求是所述消息接收方在接收到消息发送方发出的会话消息之后生成的;状态消息更新模块,配置为根据所述回执请求进行所述会话消息的状态消息更新,所述会话消息的状态消息包括所述消息发送方对于所述会话消息的发送状态消息;通知消息发送模块,配置为完成所述会话消息的状态消息更新后,向所述消息发送方发送通知消息;本地消息序列号获取模块,配置为响应于所述消息发送方针对所述通知消息返回的数据更新请求,获取所述数据更新请求中含有的本地消息序列号,所述本地消息序列号是所述消息发送方获取到的与所述会话消息关联的最大消息序列号;差量数据发送模块,配置为确定所述更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,并将包含有所述差量消息序列号的发送状态消息发送至所述消息发送方,所述包含有所述差量消息序列号的发送状态消息用于表征所述消息接收方对于所述会话消息的最新处理情况。
根据本申请实施例的另一个方面,提供了一种即时通讯应用中会话消息的回执处理装置,包括:会话界面显示模块,配置为显示所述即时通讯应用的会话界面;会话消息发送模块,配置为响应于所述会话界面中触发输入的第一会话消息,将所述第一会话消息发送至所述即时通讯应用中的至少一个消息接收方,并在所述会话界面中显示所述第一会话消息;最大消息序列号获取模块,配置为当接收到后台服务器发送的通知消息时,从本地消息流存储空间中获取所述第一会话消息对应的最大消息序列号,其中,所述通知消息是所述后台服务器根据所述消息接收方针对所述第一会话消息所发送的回执请求,更新所述第一会话消息的状态消息后生成的,所述第一会话消息的状态消息包括消息发送方对于所述第一会话消息的发送状态消息;数据更新请求发送模块,配置为将所述最大消息序列号作为本地消息序列号,向所述后台服务器发送携带有所述本地消息序列号的数据更新请求,以请求所述后台服务器根据更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,返回包含有所述差量消息序列号的发送状态消息;回执信息显示模块,配置为根据所述后台服务器针对所述数据更新请求所返回的发送状态消息,在所述会话界面更新显示所述第一会话消息对应的回执状态提示信息。
根据本申请实施例的一个方面,提供了一种电子设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的即时通讯应用中会话消息的回执处理方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的即时通讯应用中会话消息的回执处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的即时通讯应用中会话消息的回执处理方法。
在本申请的实施例提供的技术方案中,消息接收方接收到消息发送方发出的会话消息后,主动向即时通讯应用的后台服务器上报回执请求,后台服务器根据回执请求对会话消息对应的状态消息完成更新后,立即通知消息发送方上报数据更新请求,以获得消息接收方对于会话消息的最新处理情况,由此使得消息发送方能够非常及时地获知消息接收方对于会话消息的回执情况。同时,消息发送方向后台服务器发送的数据更新请求中携带有本地消息序列号,使得后台服务器根据更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,来向消息发送方返回消息接收方对于会话消息的最新处理情况,能够节约信息传输的流量,以进一步提升消息发送方获取回执情况的及时性,并且还能够提升即时通讯应用的性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请涉及的一种实施环境的示意图;
图2是图1所示实施环境中的后台服务器中配置的即时通讯应用系统的架构示意图;
图3是本申请的一实施例示出的即时通讯应用中会话消息的回执处理方法的流程图;
图4是图3所示实施例中步骤S230在一实施例的流程图;
图5是本申请的一实施例示出的会话消息的状态消息更新示意图;
图6是图3所示实施例中步骤S230在另一实施例的流程图;
图7是本申请的另一实施例示出的即时通讯应用中会话消息的回执处理方法的流程图;
图8是本申请的另一实施例示出的即时通讯应用中会话消息的回执处理方法的流程图;
图9是本申请的一实施例示出的即时通讯应用中会话消息的回执处理装置的框图;
图10是本申请的另一实施例示出的即时通讯应用中会话消息的回执处理装置的框图;
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参阅图1,图1是本申请涉及的一种实施环境的示意图,该实施环境具体为一即时通讯系统。该即时通讯系统中包括多个用户终端10和后台服务器20,用户终端10中运行有即时通讯应用的客户端,后台服务器20则用于为用户终端10中客户端的运行提供数据服务。
在图1所示的即时通讯系统中,不同的用户之间使用用户终端10即可进行即时通讯,例如多个用户可以组建会话群组,会话群组中包含的每个用户均可在此会话群组中进行多方会话。例如在图1所示出的即时通讯系统中,若通过用户1~4组建得到会话群组,任意一个用户在会话群组中发出的会话消息都能够被其它所有用户接收到。
后台服务器20中运行有图2所示的即时通讯应用系统,该示例性的即时通讯应用系统可以包括接入层21、通用网关接口层22、逻辑层23和存储层24。其中接入层21是指系统中面向用户连接或访问的部分;公共网关接口层22也称为CGI(Common GatewayInterface)层,用于实现用户请求包的打包及解包等;逻辑层23用于进行逻辑处理,例如包括消息分发、消息压入等操作的执行;存储层24则用于进行消息的存储。
逻辑层23中部署有推送系统、互通系统、聊天模块、接口模块、消息模块以及索引模块等功能模块,以用于支持即时通讯应用所具备的功能。例如,推送系统用于支持即时通讯应用向用户推送消息的功能,互通系统用于支持自身即时通讯应用与其它即时通讯应用之间的互通功能,本处不进行一一描述。
需要说明的是,用户终端10可以是智能手机、平板、笔记本电脑、计算机等任意能够运行即时通讯应用的客户端的电子设备。后台服务器20可以是独立的物理服务器;也可以是多个物理服务器构成的服务器集群或者分布式系统,多个物理服务器可组成一区块链,而每个物理服务器为区块链上的节点;还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
为提升即时通讯的沟通效率,现有技术实现在即时通讯应用中引入会话消息的回执功能,使得任一用户通过即时通讯应用的客户端发出一条会话消息之后,能够获取到会话消息的消息接收方已经成功接收到会话消息的回执消息。消息接收方成功接收到会话消息通常是指会话消息已被消息接收方对应的用户查看。
在现有技术实现中,通常是在即时通讯应用的后台服务器针对每条会话消息都维护消息已读列表和消息未读列表,即时通讯应用的客户端通过轮询的方式向后台服务器查询会话消息的回执状态,以根据查询结果在客户端中更新显示会话消息的回执消息。可以看出,即时通讯应用的客户端并不能及时地获取到会话消息的回执状态。
为解决此问题,本申请的实施例分别提出了即时通讯应用中会话消息的回执处理方法、即时通讯应用中会话消息的回执处理装置、电子设备和计算机可读存储介质,详细内容请参加如下的实施例描述。
图3是本申请的一实施例示出的即时通讯应用中会话消息的回执处理方法的流程图。该方法可以应用于图1所示的实施环境,并由图1所示实施环境中的后台服务器20具体执行。在其它的实施环境中,该方法也可以由其它设备执行。
如图3所示,在一示例性实施例中,该即时通讯应用中会话消息的回执处理方法可以包括步骤S210至步骤S290,详细介绍如下:
步骤S210,获取消息接收方发送的回执请求,回执请求是消息接收方在接收到消息发送方发出的会话消息之后生成的。
首先需要说明的是,本实施例涉及的消息发送方是指发出会话消息的即时通讯应用的客户端,消息接收方是指接收会话消息的即时通讯应用的客户端。不同会话消息所对应的消息接收方和消息发送方均可以不同,并且一条会话消息可以对应于多个消息接收方。
还需要说明的是,本实施例中消息接收方接收到消息发送方发出的会话消息是指,消息发送方发出的会话消息已经送达至消息接收方,且被消息接收方所在的用户查看。
由此,消息接收方在接收到消息发送方发出的会话消息之后,即向后台服务器上报回执请求,后台服务器则相应获取到此回执请求。
在会话消息对应有多个消息接收方的情况下,每个消息接收方在接收到消息发送方发出的会话消息之后都会向后台服务器上报一次回执消息,使得后台服务器相应接收到不同消息接收方所发送的回执请求。
步骤S230,根据回执请求进行会话消息的状态消息更新,会话消息的状态消息包括消息发送方对于会话消息的发送状态消息。
首先,后台服务器根据接收的回执请求,可以获得发起回执请求的消息接收方的标识信息,其中消息接收方的标识信息可以是消息接收方的ID(Identity document,身份标识号)。在消息发送方发出的会话消息具有多个消息接收方的情况下,后台服务器根据接收到的回执请求能够获知已经接收到会话消息的具体消息接收方。示例性的,消息接收方发起的回执请求经由图2所示的接入层21和公共网关接口层22到达逻辑层23,在逻辑层23中进行鉴权等逻辑处理即可得到消息接收方的标识信息。
后台服务器根据接收的回执请求,还可以获知消息接收方所发出的会话消息已经被消息接收方所在的用户查看,也即后台服务器获知到会话消息的状态已经发生变化,因此需更新会话消息的状态消息。会话消息的状态消息用于表征会话消息的状态。
会话消息涉及在消息发送方中的发送以及在消息接受方中的接收,因此会话消息的状态消息包括消息发送方对于会话消息的发送状态消息,还包括消息接收方对于会话消息的接收状态消息,进而在本实施例中,根据回执请求进行会话消息的状态消息更新包括会话消息对应的发送状态消息的更新,以及包括会话消息对应的接收状态消息的更新。
本实施例根据回执请求进行会话消息对应的发送状态消息的更新,也即是对于消息发送方更新会话消息已被消息接收方成功接收的状态消息;根据回执请求进行会话消息对应的接收状态消息的更新,也即是对于消息接收方更新会话消息已被接收方成功接收的状态消息。由此可知,本实施例根据消息接收方所发起的回执消息,将分别更新会话消息在消息发送方和消息接收方中的状态情况。
需要说明的是,本实施例更新消息发送方对于所述会话消息的发送状态消息,使得后台服务器能够及时记录消息发送方在发出会话消息后,消息接收方对于此会话消息的最新处理情况,进而便于消息发送方根据后台服务器中更新的发送状态消息获知自身所发出会话消息的回执情况。
步骤S250,在完成会话消息的状态消息更新后,向消息发送方发送通知消息。
后台服务器在根据消息接收方发送的回执消息完成会话消息的状态消息更新后,即向消息发送方发送通知消息,以通知消息发送方进行会话消息的状态同步。其中,消息发送方进行会话消息的状态同步是指消息发送方从后台服务器中获取最新的发送状态数据的过程。
需要说明的是,当消息发送方发出的会话消息具有多个消息接收方时,后台服务器每接收到其中一个消息接收方发起的回执请求,都将根据回执请求进行会话消息的状态消息更新,并在完成每一次的状态消息更新后,都将向消息发送方发起通知消息。
步骤S270,响应于消息发送方针对通知消息返回的数据更新请求,获取数据更新请求中含有的本地消息序列号,本地消息序列号是消息发送方获取到的与会话消息关联的最大消息序列号。
消息发送方接收到后台服务器发送的通知消息后,向后台服务器发送数据更新请求,以请求获取后台服务器中更新的发送状态消息,进而根据更新的发送状态消息获取到消息接收方对于会话消息最新处理情况。
后台服务器则响应于消息发送方的数据更新请求,向消息发送方发送更新后的发送状态消息。
考虑到消息发送方每次接收到后台服务器发送的通知消息之后,都向后台服务器请求获取针对会话消息所存储的所有发送状态消息,会导致数据传输流量较高,影响消息发送方对于会话消息的最新回执状态的获取及时性,同时也会影响即时通讯应用的整体性能。为此,在本实施例中,消息发送方在接收到后台服务器发送的通知消息之后,向后台服务器请求获取新增的发送状态消息。
消息发送方在本地存储有本地消息流存储空间,用于将每次从后台服务器中获取到的与会话消息相关联的发送状态信息进行本地存储。发送状态信息与会话消息相关联是指发送状态信息用于表征此会话消息对应的发送状态,会话消息对应的发送状态在后台服务器中是动态更新的,因此消息发送方也将根据后台服务器向其发送的发送状态信息对本地消息流存储空间进行更新。
消息发送方获取到的与会话消息关联的最大消息序列号,也即是消息发送方最近一次从后台服务器中获取到的与会话消息关联的最大消息序列号,本实施例也将此最大消息序列号作为本地消息序列号。
消息发送方将本地消息序列号携带在数据更新请求中,后台服务器接收方数据更新请求后,则获取数据更新请求中含有的本地消息序列号。
步骤S290,确定更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,并将包含有差量消息序列号的发送状态消息发送至消息发送方,包含有差量消息序列号的发送状态消息用于表征消息接收方对于会话消息的最新处理情况。
由于数据更新请求是消息发送方接收到通知消息后生成的,并且通知消息是后台服务器完成会话消息的状态消息更新后发起的,因此本地消息序列号小于后台服务器中存储的最新发送状态消息所含有的最新消息序列号。
由此,后台服务器则可以确定更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,然后将包含有差量消息序列号的发送状态消息发送至消息发送方,由此实现发送状态消息在消息发送方和后台服务器之间的差量同步,以节省更新后的发送状态消息同步至消息发送方中所需的流量,从而提升即时通讯应用的性能。
消息发送方接收到后台服务器发送的更新后的发送状态消息后,可以对会话消息的最新回执情况进行UI(User Interface,用户界面)展示,例如展示会话消息已经被某一个或多个消息接收方查看,或者也可以根据会话消息的最新回执情况更新会话消息的已读列表和未读列表,本实施例不对此进行限制。
由此可知,即使消息发送方发出的会话消息具有多个消息接收方,基于本实施例提供的方法仍可以使得每个消息接收方在接收到会话消息后,通过向后台服务器上报回执请求,使得后台服务器及时更新会话消息的状态,并及时通知消息发送方更新会话消息的回执情况,进而使得消息发送方能够及时地获取到会话消息的最新回执状态,解决了现有技术实现中通过轮询获取会话消息的回执情况所导致的不及时的问题。
同时,消息发送方向后台服务器发送的数据更新请求中携带有本地消息序列号,使得后台服务器根据更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,来向消息发送方返回消息接收方对于会话消息的最新处理情况,能够节约信息传输的流量,以进一步提升消息发送方获取回执情况的及时性,并且还能够提升即时通讯应用的性能。
并且在另一示例性实施例中,消息接收方发送的回执请求可以包括针对多条会话消息的批量回执请求,多条会话消息也可以是至少一个消息发送方所发出的,以使得后台服务器根据消息接收方发送的针对多条会话消息的批量回执请求,并发进行各条会话消息的状态消息更新,进而实现消息接收方批量确认回执消息,且后台服务器批量更新状态消息的功能,由此能够减少消息接收方调用后台服务器的次数,并且能够有效提升即时通讯应用的系统吞吐能力,优化用户体验。
如图4所示,在一示例性实施例中,步骤S230中根据回执请求进行消息发送方对于会话消息的发送状态消息的更新过程具体可以包括步骤S231至步骤S233,详细介绍如下:
步骤S231,获取消息发送方对应的第一消息流存储空间中存储的最新发送状态消息,最新发送状态消息中含有与会话消息关联的最新消息序列号。
首先需要说明的是,后台服务器为即时通讯应用中的每个用户分配有各自的消息流存储空间,以在消息流存储空间中存储各自发送或接收会话消息的状态消息。在本实施例中,将消息发送方对应的消息流存储空间称为第一消息流存储空间,将消息接收方对应的消息流存储空间称为第二消息流存储空间。
在第一消息流存储空间针对会话消息存储的每条发送状态消息中,均包含有与会话消息关联的消息序列号,并且各条发送状态消息的消息序列号逐渐递增,由此通过逐渐递增的消息序列号来反映会话消息的回执情况。
后台服务器接收到消息接收方针对会话消息所上报的回执请求时,由于需要在第一消息流存储空间中新增一条发送状态消息,则需获取第一消息流存储空间中存储的最新发送状态消息,进而获取最新发送状态消息中含有与会话消息关联的最新消息序列号。
步骤S233,根据回执请求在第一消息流存储空间中新增发送状态消息,新增的发送状态消息中含有的消息序列号在最新消息序列号上递增,并且新增的发送状态消息映射至第一消息流存储空间中存储的初始发送状态消息。
如上所述,第一消息流存储空间中存储的各条发送状态消息所含有的消息序列号逐渐递增,因此对于在第一消息流存储空间中新增的发送状态消息,其中含有的消息序列号需要在最新发送状态消息所含有的最新消息序列号上进行递增。
新增的发送状态消息还需映射至第一消息流存储空间中存储的初始发送状态消息,初始发送状态用于表征消息发送方发出了会话消息,以通过映射关系来指示会话消息的状态发生了变化。
示例性的,可以在最新消息序列号上进行递增得到目标消息序列号,并生成与初始发送状态消息中含有的初始消息序列号相一致的目标参考号,将目标消息序列号和目标参考号作为新增的发送状态消息存储至第一消息流存储空间中,以通过目标参考号映射至初始发送状态消息。
例如图5所示,假设消息发送方a发出的会话消息具有2个消息接收方,分别为消息接收方b和消息接收方c。当消息发送方a发出会话消息后,后台服务器会在消息发送方a的第一消息流存储空间中存储一条初始发送状态消息“Msgid=a1 Referid=0”,其中“Msgid=a1”表示初始消息序列号为“a1”,“Referid=0”表示初始参考号为“0”,由此通过初始发送状态消息表示消息发送方a发出了会话消息的状态。
若消息接收方b先于消息接收方c向后台服务器发送回执请求,后台服务器则根据消息接收方b的回执请求,在消息发送方a的第一消息流存储空间中新增一条发送状态消息“Msgid=a2 Referid=a1”,用于表征消息接收方b已经接收到消息发送方a所发出的会话消息。可以看出,该新增的发送状态消息中含有的消息序列号“Msgid=a2”是在初始发送状态消息所含有的初始消息序列号的基础上递增得到的,并通过参考号“Referid=a1”指向初始发送状态消息。
后台服务器根据消息接收方b针对会话消息上报的回执请求,在第一消息流存储空间中新增一条发送状态消息“Msgid=a3 Referid=a1”,用于表征消息接收方c已经接收到消息发送方a所发出的会话消息。可以看出,在新增词条发送状态消息时,发送状态消息“Msgid=a2 Referid=a1”将作为第一消息流存储空间中的最新发送状态消息,以在此最新发送状态消息的基础上进行发送状态消息的新增。
可以看出,本实施例通过在消息发送方对应的第一消息流存储空间中更新消息发送方对于会话消息的发送状态消息,可以根据第一消息流存储空间中最新的发送状态消息中含有的消息序列号来准确地获知会话消息的消息接收方对于会话消息的最新处理情况,例如可以准确得到当前已经成功接收到消息发送方所发出的会话消息的消息接收方数量。
同理,后台服务器根据回执请求更新消息接收方对于会话消息的接收状态消息的过程可以如图6所示,具体包括步骤S232至步骤S236,详细介绍如下:
步骤S232,在消息接收方对应的第二消息流存储空间中获取初始接收状态消息,初始接收状态消息中含有与会话消息关联的初始消息序列号,并且初始接收状态消息映射至消息发送方对应的第一消息流存储空间中初始发送状态消息。
首先说明的是,消息接收方对应的第二消息流存储空间用于存储消息接收方对于会话消息的接收状态消息,初始接收状态消息用于表示会话消息已经送达至消息接收方。
当消息接收方确认已经接收到会话消息后,向后台服务器上报针对会话消息的回执请求,后台服务器需在消息接收方对应的第二消息流存储空间中新增一条用于表征消息接收方已经成功接收到会话消息的接收状态消息,也即是需要在第二消息流存储空间中更新消息接收方对于会话消息的最新处理状态。
在消息接收方对应的第二消息流存储空间中,各条接收状态消息中含有的消息序列号也是递增的,因此为了能在第二消息流存储空间中新增一条接收会话消息,需从第二消息流存储空间中获取初始接收状态消息。
需要说明的是,初始接收状态消息中含有与会话消息关联的初始消息序列号,并且初始接收状态消息映射至消息发送方对应的第一消息流存储空间中初始发送状态消息。基于此映射关系,即可以明确获知这些接收状态消息与初始发送状态消息所指示的会话消息是相关联的。
仍如图5所示,在消息接收方b所对应的第二消息流存储空间中,初始接收状态消息为“Msgid=b1 Senderid=a1 Referid=0”,其中“Msgid=b1”表示初始消息序列号,“Referid=0”表示初始参考号为“0”,“Senderid=a1”表示消息发送方所在的第一消息流存储空间中针对会话消息的发送状态所存储的初始消息序列号,由此将初始接收状态消息映射至消息发送方对应的第一消息流存储空间中的初始发送状态消息。消息接收方c所对应的第二消息流存储空间中的初始接收状态消息同理,本处不再进行赘述。
步骤S234,在初始消息序列号上进行递增得到目标消息序列号,并生成与初始消息序列号相一致的目标参考号。
仍如图5中示出的消息接收方b的第二消息流存储空间,初始接收状态消息中含有的初始消息序列号为“b1”,在初始消息序列号上进行递增则可以得到目标消息序列号“b2”,生成的与初始消息序列号相一致的目标参考号相应为“b1”。
步骤S236,将目标消息序列号和目标参考号作为新增的接收状态消息存储至第二消息流存储空间中,以通过目标参考号映射至初始接收状态消息。
本实施例将目标消息序列号和目标参考号作为新增的接收状态消息存储至第二消息流存储空间中,由此在第二消息流存储空间中新增一条接收状态消息。由于新增的接收状态消息中含有的消息序列号相比于初始接收状态消息中含有的消息序列号较大,因此将新增的接收状态消息作用于表征会话消息在消息接收方中的最新状态。
在此新增的接收状态消息中,通过目标参考号映射至初始接收状态消息,并且初始接收状态消息也映射至消息发送方对应的第一消息流存储空间中所存储的初始发送状态消息,使得此新增的接收状态消息能够通过消息之间的映射关系,准确地表征消息接收方对于消息发送方所发出会话消息的最新处理状态,能够满足实际应用中消息发送方和消息接收方之间通常进行海量会话消息的沟通场景。
图7是本申请的另一实施例示出的即时通讯应用中会话消息的回执处理方法的流程图。该方法也可以应用于图1所示的实施环境,例如由图1所示实施环境中的用户终端10具体执行,执行该方法的用户终端10中运行即时通讯应用的客户端。在其它的实施环境中,该方法可以由其它设备具体执行,本实施例也不对此进行限制。
如图7所示,在一示例性实施例中,该方法包括步骤S310至步骤S390,详细介绍如下:
步骤S310,显示即时通讯应用的会话界面。
首先说明的是,即时通讯应用的会话界面是指即时通讯应用的客户端所提供的用户交互界面,以通过此会话界面实现用户之间的会话沟通。
示例性的,即时通讯应用的用户可以通过此会话界面与至少一个其它用户进行会话沟通,具体可以包括向其他用户发送会话消息,通过也可以获取到其它用户发送的会话消息。会话消息具体可以包括文字、语音、图片等至少一种消息内容,本实施例不对此进行限制。
步骤S330,响应于会话界面中触发输入的第一会话消息,将第一会话消息发送至即时通讯应用中的至少一个消息接收方,并在会话界面中显示第一会话消息。
本实施例响应于会话界面中触发输入的第一会话消息,将第一会话消息发送至即时通讯应用中的至少一个消息接收方,是指将显示有当前会话界面的客户端作为消息发送方,向至少一个消息接收方发送第一会话消息。同时,会话界面中还将相应显示第一会话消息,以表示第一会话消息已经从消息发送方发出。
会话界面中可以设有会话消息的输入控件,用户点击此输入控件后,会话界面中进一步显示键盘区域,用户通过在键盘区域中进行触发操作即可触发输入第一会话消息。用户也可以长按此输入控件,使得会话界面中显示“粘贴”等功能标签,用户通过进一步触发功能标签即可触发输入第一会话消息,本实施例不对输入第一会话消息的具体方式进行限制。
步骤S350,当接收到后台服务器发送的通知消息时,从本地消息流存储空间中获取第一会话消息对应的最大消息序列号,其中,通知消息是后台服务器根据消息接收方针对第一会话消息所发送的回执请求,对第一会话消息的状态消息更新后生成的,第一会话消息的状态消息包括消息发送方对于第一会话消息的发送状态消息。
消息接收方向消息接收方发送第一会话消息,实际是将第一会话消息上报至后台服务器,使得后台服务器将第一会话消息转发给消息接收方。消息接收方确认已经接收到第一会话消息后,则向后台服务器上报回执请求,其中消息接收方确认已经接收到第一会话消息是指第一会话消息已送达至消息接收方,并且被消息接收方所在的用户查看。
后台服务器接收到消息接收方上报的回执请求后,则进行第一会话消息的状态消息更新,详细的更新过程请参见图5所示的状态消息更新示意图。需要说明的是,后台服务器进行第一会话消息的状态消息更新包括消息发送方对于第一会话消息的发送状态消息的更新,还包括消息接收方对于第一会话消息的接收状态消息的更新。
后台服务器在完成第一会话消息的状态消息更新后,向消息发送方发送通知消息。当消息发送方接收到通知消息时,则向后台服务器发送数据更新请求。后台服务器接收到数据更新请求后,需将更新后的消息发送方对于第一会话消息的发送状态消息返回给消息发送方。
消息发送方可以从本地消息流存储空间中获取第一会话消息对应的最大消息序列号,本地消息流存储空间中存储有第一会话消息的发送状态消息,然后执行步骤S370所描述的内容。
步骤S370,将最大消息序列号作为本地消息序列号,向后台服务器发送携带有本地消息序列号的数据更新请求,以请求后台服务器根据更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,返回包含有差量消息序列号的发送状态消息。
消息发送方将最大消息序列号作为本地消息序列号,向后台服务器发送携带有本地消息序列号的数据更新请求,以请求后台服务器根据更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,返回包含有差量消息序列号的发送状态消息。详细的过程仍请参见前述实施例,本处不对此进行限制。
步骤S390,根据后台服务器针对数据更新请求所返回的发送状态消息,在会话界面更新显示第一会话消息对应的回执状态提示信息。
后台服务器针对数据更新请求所返回的发送状态消息,也即是后台服务器根据消息接收方所发送的回执请求,对消息发送方对于第一会话消息的发送状态消息进行更新后的发送状态消息。
消息发送方根据后台服务器所返回的发送状态消息,在会话界面更新显示第一会话消息对应的回执状态提示信息,也即是将消息接收方对于第一会话消息的最新处理情况显示在会话界面中,以提示用户第一会话消息的回执情况,使得用户对于自身发出的第一会话消息的发送进度有所掌握。
例如用户B向用户A发送的第一会话消息“********”成功送达至用户A所在的即时通讯应用的客户端,并且被用户A查看,基于本实施例的方法即可在用户A所在的即时通讯应用的客户端中显示已读标识,以将此已读标识作为第一会话消息对应的回执状态提示信息,用于提示用户A已经查看了用户B发送的第一会话消息。
在一些实施例中,消息发送方可以根据后台服务器返回的发送状态消息,更新本地消息流存储空间中存储的第一会话消息的发送状态消息,然后基于本地消息流存储空间中更新的与第一会话消息相对应的最新消息序列号,确定接收到第一会话消息的消息接收方的最新数量,最后将最新数量作为第一会话消息对应的回执状态提示信息显示在会话界面中。
例如用户C在会话群组B中与多个用户进行会话沟通,当用户C在会话群组B中发出第一会话消息“*********”之后,基于本实施例的方法则可以在用户C所在的即时通讯应用的客户端中显示会话群组B中已经有多少个用户已经查看了此第一会话消息。并且,随着第一会话消息陆续地被不同用户查看,用户C所在的即时通讯应用的客户端中显示的会话群组B中已经查看此第一会话消息的用户数量也将不断更新。
并且还需要提及的是,基于后台服务器所配设的通知机制,使得消息发送方可以及时地向后台服务器请求获取更新后的发送状态消息,进而及时地将消息发送方发出的第一会话消息的最新回执状态显示到消息发送方对应的会话界面上,同时后台服务器基于差量更新机制向消息发送方返回消息接收方对于第一会话消息的最新处理情况,使得第一会话消息的最新回执情况能够及时触达发送方用户,极大地提升了用户体验。
在另一示例性的实施例中,消息发送方根据后台服务器返回的发送状态消息,更新本地消息流存储空间中存储的第一会话消息的发送状态消息时,还相应维护第一会话消息对应的已读列表和未读列表。其中,已读列表用于记录多个消息接收方中已经接收到第一会话消息的消息接收方,未读列表则用于记录多个消息接收方中还未接收方第一会话消息的消息接收方。
消息发送方首先从本地消息流存储空间中读取第一会话消息对应的初始发送状态消息,初始发送状态消息的消息体中含有第一会话消息对应的已读列表和未读列表,然后将消息接收方的标识信息添加至已读列表中,并将消息接收方的标识信息从未读列表中删除,以更新初始发送状态消息。消息接收方的标识信息可以包括消息接收方所对应用户的用户标识,例如可以包括用户在即时通讯应用中的用户昵称、用户签名信息、用户表情、用户头像中的至少一种用户标识。
当监听到会话界面中触发生成的对于第一会话消息的接收状态查看指令时,则从第一会话消息对应的初始发送状态消息中读取已读列表和未读列表,然后根据已读列表和未读列表,在所述会话界面中显示第一会话消息在至少一个消息接收方中的接收状态。示例性的,若用户触发了会话界面中显示的第一会话消息对应的回执状态提示信息,则相应生成第一会话消息的接收状态查看指令。
例如,若用户触发了即时通讯应用的客户端中显示的已读标识时,则针对第一会话消息的已读列表和未读列表进行可视化显示,并且还可以显示第一会话消息的具体内容和发送时间,以进一步便于用户查看自身所发出第一会话消息在多个用户中的被查看情况,极大地提升了用户之间的沟通效率。
如图8所示,在另一示例性实施例中,即时通讯应用中会话消息的回执处理方法在图7所示基础上还进一步包括步骤S410至步骤S430,详细介绍如下:
步骤S410,在会话界面中显示接收到的第二会话消息。
在本实施例中,显示有会话界面的即时通讯应用的客户端也作为消息接收方,接收其他客户端发送的第二会话消息。
步骤S430,响应于会话界面中触发生成的针对第二会话消息的消息已查阅指令,向后台服务器发送第二会话消息对应的回执请求,以请求后台服务器根据接收的回执消息更新第二会话消息对应的状态消息。
会话界面中触发生成的针对第二会话消息的消息已查阅指令,可以是在监听到会话界面中触发的界面滑动操作之后执行的。例如,第二会话消息显示在会话界面上,如果用户触发会话界面进行滑动,则可确定用户已经查阅了会话界面中当前所显示的各条会话消息,希望通过会话界面的滑动来查看更多的会话消息,因此可以生成针对第二会话消息的消息已查阅指令。
或者在另外的实施例中,由于用户终端的显示屏幕大小是有限的,在用户触发会话界面进行滑动的过程中,如果第二会话消息显示在用户终端的显示屏幕上,也可以确定用户已经查阅了第二会话消息,由此生成针对第二会话消息的消息已查阅指令。需要说明的是,任意能够确定用户已经查阅第二会话消息的方式均可以应用于本实施例中,本实施例不对此进行限制。
此外,会话界面中显示的第二会话消息的数量通常是多条,因此可以即时通讯应用的客户端可以响应于会话界面中触发的界面滑动操作,进行第一会话消息和第二会话消息在会话界面中的滑动显示,并针对会话界面当前显示的全部第二会话消息生成批量的消息已查阅指令。然后,根据批量的消息已查阅指令,向后台服务器发送会话界面当前显示的全部第二会话消息的批量回执请求。
也即是说,用户在用户终端中通过滑动操作向上或向下查阅会话消息时,用户终端会主动向后台服务器上报当前显示屏幕下的所有第二会话消息的回执请求,以支持第二会话消息的回执批量上报,不仅节省了流量,也能够提高即时通讯应用的整体性能。
图9是本申请的一实施例示出的即时通讯应用中会话消息的回执处理装置的框图。如图9所示,该装置可以包括:
回执请求获取模块510,配置为获取消息接收方发送的回执请求,回执请求是消息接收方在接收到消息发送方发出的会话消息之后生成的;状态消息更新模块530,配置为根据回执请求进行会话消息的状态消息更新,会话消息的状态消息包括消息发送方对于会话消息的发送状态消息;通知消息发送模块550,配置为完成会话消息的状态消息更新后,向消息发送方发送通知消息;本地消息序列号获取模块570,配置为响应于消息发送方针对通知消息返回的数据更新请求,获取数据更新请求中含有的本地消息序列号,本地消息序列号是消息发送方获取到的与会话消息关联的最大消息序列号;差量数据发送模块590,配置为确定更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,并将包含有差量消息序列号的发送状态消息发送至消息发送方,包含有差量消息序列号的发送状态消息用于表征消息接收方对于会话消息的最新处理情况。
在另一示例性实施例中,状态消息更新模块530包括:
最新发送状态消息获取单元,配置为获取消息发送方对应的第一消息流存储空间中存储的最新发送状态消息,最新发送状态消息中含有与会话消息关联的最新消息序列号;发送状态消息新增单元,配置为根据回执请求在第一消息流存储空间中新增发送状态消息,新增的发送状态消息中含有的消息序列号在最新消息序列号上递增,并且新增的发送状态消息映射至第一消息流存储空间中存储的初始发送状态消息。
在另一示例性实施例中,发送状态消息新增单元包括:
目标序号生成子单元,配置为在最新消息序列号上进行递增得到目标消息序列号,并生成与初始发送状态消息中含有的初始消息序列号相一致的目标参考号;新增发送状态消息存储子单元,配置为将目标消息序列号和目标参考号作为新增的发送状态消息存储至第一消息流存储空间中,以通过目标参考号映射至初始发送状态消息。
在另一示例性实施例中,会话消息的状态消息还包括消息接收方对于会话消息的接收状态消息;状态消息更新模块530还包括:
初始接收状态消息获取单元,配置为在消息接收方对应的第二消息流存储空间中获取初始接收状态消息,初始接收状态消息中含有与会话消息关联的初始消息序列号,并且初始接收状态消息映射至消息发送方对应的第一消息流存储空间中的初始发送状态消息;目标号码生成单元,配置为在初始消息序列号上进行递增得到目标消息序列号,并生成与初始消息序列号相一致的目标参考号;新增消息存储及映射单元,配置为将目标消息序列号和目标参考号作为新增的接收状态消息存储至第二消息流存储空间中,以通过目标参考号映射至初始接收状态消息。
在另一示例性实施例中,消息接收方发送的回执请求包括针对多条会话消息的批量回执请求,多条会话消息是至少一个消息发送方所发出的;状态消息更新模块530还包括:并发更新单元,配置为根据消息接收方发送的针对多条会话消息的批量回执请求,并发进行各条会话消息的状态消息更新。
图10是本申请的另一实施例示出的即时通讯应用中会话消息的回执处理装置的框图。如图10所示,该装置可以包括:
会话界面显示模块610,配置为显示即时通讯应用的会话界面;会话消息发送模块630,配置为响应于会话界面中触发输入的第一会话消息,将第一会话消息发送至即时通讯应用中的至少一个消息接收方,并在会话界面中显示第一会话消息;最大消息序列号获取模块650,配置为当接收到后台服务器发送的通知消息时,从本地消息流存储空间中获取第一会话消息对应的最大消息序列号,其中,通知消息是后台服务器根据消息接收方针对第一会话消息所发送的回执请求,对第一会话消息的状态消息更新后生成的,第一会话消息的状态消息包括消息发送方对于第一会话消息的发送状态消息;数据更新请求发送模块670,配置为将最大消息序列号作为本地消息序列号,向后台服务器发送携带有本地消息序列号的数据更新请求,以请求后台服务器根据更新后的发送状态消息中的最新消息序列号与本地消息序列号之间的差量消息序列号,返回包含有差量消息序列号的发送状态消息;回执信息显示模块690,配置为根据后台服务器针对数据更新请求所返回的发送状态消息,在会话界面更新显示第一会话消息对应的回执状态提示信息。
在另一示例性实施例中,回执信息显示模块690包括:
发送状态消息对应更新单元,配置为根据后台服务器返回的发送状态消息,更新本地消息流存储空间中存储的第一会话消息的发送状态消息;接收方最新数量获取单元,配置为基于本地消息流存储空间中更新的第一会话消息对应的最新消息序列号,确定接收到第一会话消息的消息接收方的最新数量;接收方最新数量显示单元,配置为将最新数量作为第一会话消息对应的回执状态提示信息显示在会话界面中。
在另一示例性实施例中,发送状态消息对应更新单元包括:
消息列表获取子单元,配置为从本地消息流存储空间中读取第一会话消息对应的初始发送状态消息,初始发送状态消息中含有第一会话消息对应的已读列表和未读列表;消息列表更新子单元,配置为将消息接收方的标识信息添加至已读列表中,并将消息接收方的标识信息从未读列表中删除,以更新初始发送状态消息。
在另一示例性实施例中,该装置还包括:
接收状态查看指令监听模块,配置为当监听到会话界面中触发生成的对于第一会话消息的接收状态查看指令时,从第一会话消息对应的初始发送状态消息中读取已读列表和未读列表;列表状态显示模块,配置为根据已读列表和未读列表,在会话界面中显示第一会话消息在至少一个消息接收方中的接收状态。
在另一示例性实施例中,该装置还包括:
第二会话消息显示模块,配置为在会话界面中显示接收到的第二会话消息;回执请求发送模块,配置为响应于会话界面中触发生成的针对第二会话消息的消息已查阅指令,向后台服务器发送第二会话消息对应的回执请求,以请求后台服务器根据接收的回执消息更新第二会话消息对应的状态消息。
在另一示例性实施例中,会话界面中显示的第二会话消息的数量包括多条;回执请求发送模块包括:
批量消息已查阅指令生成单元,配置为滑动显示响应于会话界面中触发的界面滑动操作,进行第一会话消息和第二会话消息在会话界面中的滑动显示,并针对会话界面当前显示的全部第二会话消息生成批量的消息已查阅指令;批量回执请求发送单元,配置为根据批量的消息已查阅指令,向后台服务器发送会话界面当前显示的全部第二会话消息的批量回执请求。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前所述的即时通讯应用中会话消息的回执处理方法。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图11示出的电子设备的计算机系统1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从储存部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1603中,还存储有系统操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input/Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的即时通讯应用中会话消息的回执处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的即时通讯应用中会话消息的回执处理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (15)
1.一种即时通讯应用中会话消息的回执处理方法,其特征在于,包括:
获取消息接收方发送的回执请求,所述回执请求是所述消息接收方在接收到消息发送方发出的会话消息之后生成的;
根据所述回执请求进行所述会话消息的状态消息更新,所述会话消息的状态消息包括所述消息发送方对于所述会话消息的发送状态消息,还包括所述消息接收方对于所述会话消息的接收状态消息;
完成所述会话消息的状态消息更新后,向所述消息发送方发送通知消息;
响应于所述消息发送方针对所述通知消息返回的数据更新请求,获取所述数据更新请求中含有的本地消息序列号,所述本地消息序列号是所述消息发送方获取到的与所述会话消息关联的最大消息序列号;
确定所述更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,并将包含有所述差量消息序列号的发送状态消息发送至所述消息发送方,所述包含有所述差量消息序列号的发送状态消息用于表征所述消息接收方对于所述会话消息的最新处理情况;
其中,所述根据所述回执请求进行所述会话消息的状态消息更新,包括:
获取所述消息发送方对应的第一消息流存储空间中存储的最新发送状态消息,所述最新发送状态消息中含有与所述会话消息关联的最新消息序列号;根据所述回执请求在所述第一消息流存储空间中新增发送状态消息,新增的发送状态消息中含有的消息序列号在所述最新消息序列号上递增,并且通过在所述最新消息序列号上进行递增得到目标消息序列号,并生成与初始发送状态消息中含有的初始消息序列号相一致的目标参考号,将所述目标消息序列号和所述目标参考号作为新增的发送状态消息存储至第一消息流存储空间中,以将所述新增的发送状态消息映射至所述第一消息流存储空间中存储的初始发送状态消息;
在所述消息接收方对应的第二消息流存储空间中获取初始接收状态消息,所述初始接收状态消息中含有与所述会话消息关联的初始消息序列号,并且所述初始接收状态消息还含有用于表示所述消息发送方对应的第一消息流存储空间中针对所述会话消息的发送状态所存储的初始消息序列号的参数,以将所述初始接收状态消息映射至所述消息发送方对应的第一消息流存储空间中的初始发送状态消息;在所述初始消息序列号上进行递增得到目标消息序列号,并生成与所述初始消息序列号相一致的目标参考号;将所述目标消息序列号和所述目标参考号作为新增的接收状态消息存储至所述第二消息流存储空间中,以通过所述目标参考号映射至所述初始接收状态消息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述回执请求在所述第一消息流存储空间中新增发送状态消息,包括:
在所述最新消息序列号上进行递增得到目标消息序列号,并生成与所述初始发送状态消息中含有的初始消息序列号相一致的目标参考号;
将所述目标消息序列号和所述目标参考号作为所述新增的发送状态消息存储至所述第一消息流存储空间中,以通过所述目标参考号映射至所述初始发送状态消息。
3.根据权利要求1所述的方法,其特征在于,所述消息接收方发送的回执请求包括针对多条会话消息的批量回执请求,所述多条会话消息是至少一个消息发送方所发出的;所述根据所述回执请求进行所述会话消息的状态消息更新,包括:
根据所述消息接收方发送的针对多条会话消息的批量回执请求,并发进行各条会话消息的状态消息更新。
4.一种即时通讯应用中会话消息的回执处理方法,其特征在于,包括:
显示所述即时通讯应用的会话界面;
响应于所述会话界面中触发输入的第一会话消息,将所述第一会话消息发送至所述即时通讯应用中的至少一个消息接收方,并在所述会话界面中显示所述第一会话消息;
当接收到后台服务器发送的通知消息时,从本地消息流存储空间中获取所述第一会话消息对应的最大消息序列号,其中,所述通知消息是所述后台服务器根据所述消息接收方针对所述第一会话消息所发送的回执请求,更新所述第一会话消息的状态消息后生成的,所述第一会话消息的状态消息包括消息发送方对于所述第一会话消息的发送状态消息;
将所述最大消息序列号作为本地消息序列号,向所述后台服务器发送携带有所述本地消息序列号的数据更新请求,以请求所述后台服务器根据更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,返回包含有所述差量消息序列号的发送状态消息;
根据所述后台服务器针对所述数据更新请求所返回的发送状态消息,在所述会话界面更新显示所述第一会话消息对应的回执状态提示信息;
在所述会话界面中显示接收到的多条第二会话消息;
响应于所述会话界面中触发的界面滑动操作,进行所述第一会话消息和所述多条第二会话消息在所述会话界面中的滑动显示,并针对所述会话界面当前显示的全部第二会话消息生成批量的消息已查阅指令;
根据所述批量的消息已查阅指令,向所述后台服务器发送所述会话界面当前显示的全部第二会话消息的批量回执请求。
5.根据权利要求4所述的方法,其特征在于,所述根据所述后台服务器针对所述数据更新请求所返回的发送状态消息,在所述会话界面更新显示所述第一会话消息对应的回执状态提示信息,包括:
根据所述后台服务器返回的发送状态消息,更新本地消息流存储空间中存储的所述第一会话消息的发送状态消息;
基于所述本地消息流存储空间中更新的所述第一会话消息对应的最新消息序列号,确定接收到所述第一会话消息的消息接收方的最新数量;
将所述最新数量作为所述第一会话消息对应的回执状态提示信息显示在所述会话界面中。
6.根据权利要求5所述的方法,其特征在于,所述根据所述后台服务器返回的发送状态消息,更新本地消息流存储空间中存储的所述第一会话消息的发送状态消息,包括:
从所述本地消息流存储空间中读取所述第一会话消息对应的初始发送状态消息,所述初始发送状态消息中含有所述第一会话消息对应的已读列表和未读列表;
将所述消息接收方的标识信息添加至所述已读列表中,并将所述消息接收方的标识信息从所述未读列表中删除,以更新所述初始发送状态消息。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当监听到所述会话界面中触发生成的对于所述第一会话消息的接收状态查看指令时,从所述第一会话消息对应的初始发送状态消息中读取已读列表和未读列表;
根据所述已读列表和所述未读列表,在所述会话界面中显示所述第一会话消息在所述至少一个消息接收方中的接收状态。
8.一种即时通讯应用中会话消息的回执处理装置,其特征在于,包括:
回执请求获取模块,配置为获取消息接收方发送的回执请求,所述回执请求是所述消息接收方在接收到消息发送方发出的会话消息之后生成的;
状态消息更新模块,配置为根据所述回执请求进行所述会话消息的状态消息更新,所述会话消息的状态消息包括所述消息发送方对于所述会话消息的发送状态消息,还包括所述消息接收方对于所述会话消息的接收状态消息;
通知消息发送模块,配置为完成所述会话消息的状态消息更新后,向所述消息发送方发送通知消息;
本地消息序列号获取模块,配置为响应于所述消息发送方针对所述通知消息返回的数据更新请求,获取所述数据更新请求中含有的本地消息序列号,所述本地消息序列号是所述消息发送方获取到的与所述会话消息关联的最大消息序列号;
差量数据发送模块,配置为确定所述更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,并将包含有所述差量消息序列号的发送状态消息发送至所述消息发送方,所述包含有所述差量消息序列号的发送状态消息用于表征所述消息接收方对于所述会话消息的最新处理情况;
其中,所述状态消息更新模块配置为:
获取所述消息发送方对应的第一消息流存储空间中存储的最新发送状态消息,所述最新发送状态消息中含有与所述会话消息关联的最新消息序列号;根据所述回执请求在所述第一消息流存储空间中新增发送状态消息,新增的发送状态消息中含有的消息序列号在所述最新消息序列号上递增,并且通过在所述最新消息序列号上进行递增得到目标消息序列号,并生成与初始发送状态消息中含有的初始消息序列号相一致的目标参考号,将所述目标消息序列号和所述目标参考号作为新增的发送状态消息存储至第一消息流存储空间中,以将所述新增的发送状态消息映射至所述第一消息流存储空间中存储的初始发送状态消息;
在所述消息接收方对应的第二消息流存储空间中获取初始接收状态消息,所述初始接收状态消息中含有与所述会话消息关联的初始消息序列号,并且所述初始接收状态消息还含有用于表示所述消息发送方对应的第一消息流存储空间中针对所述会话消息的发送状态所存储的初始消息序列号的参数,以将所述初始接收状态消息映射至所述消息发送方对应的第一消息流存储空间中的初始发送状态消息;在所述初始消息序列号上进行递增得到目标消息序列号,并生成与所述初始消息序列号相一致的目标参考号;将所述目标消息序列号和所述目标参考号作为新增的接收状态消息存储至所述第二消息流存储空间中,以通过所述目标参考号映射至所述初始接收状态消息。
9.根据权利要求8所述的装置,其特征在于,所述状态消息更新模块包括:
目标序号生成子单元,配置为在所述最新消息序列号上进行递增得到目标消息序列号,并生成与所述初始发送状态消息中含有的初始消息序列号相一致的目标参考号;
新增发送状态消息存储子单元,配置为将所述目标消息序列号和所述目标参考号作为所述新增的发送状态消息存储至所述第一消息流存储空间中,以通过所述目标参考号映射至所述初始发送状态消息。
10.根据权利要求8所述的装置,其特征在于,所述消息接收方发送的回执请求包括针对多条会话消息的批量回执请求,所述多条会话消息是至少一个消息发送方所发出的;所述状态消息更新模块包括:
并发更新单元,配置为根据所述消息接收方发送的针对多条会话消息的批量回执请求,并发进行各条会话消息的状态消息更新。
11.一种即时通讯应用中会话消息的回执处理装置,其特征在于,包括:
会话界面显示模块,配置为显示所述即时通讯应用的会话界面;
会话消息发送模块,配置为响应于所述会话界面中触发输入的第一会话消息,将所述第一会话消息发送至所述即时通讯应用中的至少一个消息接收方,并在所述会话界面中显示所述第一会话消息;
最大消息序列号获取模块,配置为当接收到后台服务器发送的通知消息时,从本地消息流存储空间中获取所述第一会话消息对应的最大消息序列号,其中,所述通知消息是所述后台服务器根据所述消息接收方针对所述第一会话消息所发送的回执请求,更新所述第一会话消息的状态消息后生成的,所述第一会话消息的状态消息包括消息发送方对于所述第一会话消息的发送状态消息;
数据更新请求发送模块,配置为将所述最大消息序列号作为本地消息序列号,向所述后台服务器发送携带有所述本地消息序列号的数据更新请求,以请求所述后台服务器根据更新后的发送状态消息中的最新消息序列号与所述本地消息序列号之间的差量消息序列号,返回包含有所述差量消息序列号的发送状态消息;
回执信息显示模块,配置为根据所述后台服务器针对所述数据更新请求所返回的发送状态消息,在所述会话界面更新显示所述第一会话消息对应的回执状态提示信息;
第二会话消息显示模块,配置为在所述会话界面中显示接收到的多条第二会话消息;
批量消息已查阅指令生成单元,配置为响应于所述会话界面中触发的界面滑动操作,进行所述第一会话消息和所述多条第二会话消息在所述会话界面中的滑动显示,并针对所述会话界面当前显示的全部第二会话消息生成批量的消息已查阅指令;
批量回执请求发送单元,配置为根据所述批量的消息已查阅指令,向所述后台服务器发送所述会话界面当前显示的全部第二会话消息的批量回执请求。
12.根据权利要求11所述的装置,其特征在于,所述回执信息显示模块包括:
发送状态消息对应更新单元,配置为根据所述后台服务器返回的发送状态消息,更新本地消息流存储空间中存储的所述第一会话消息的发送状态消息;
接收方最新数据获取单元,配置为基于所述本地消息流存储空间中更新的所述第一会话消息对应的最新消息序列号,确定接收到所述第一会话消息的消息接收方的最新数量;
接收方最新数据显示单元,配置为将所述最新数量作为所述第一会话消息对应的回执状态提示信息显示在所述会话界面中。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
接收状态查看指令监听模块,配置为当监听到所述会话界面中触发生成的对于所述第一会话消息的接收状态查看指令时,从所述第一会话消息对应的初始发送状态消息中读取已读列表和未读列表;
列表状态显示模块,配置为根据所述已读列表和所述未读列表,在所述会话界面中显示所述第一会话消息在所述至少一个消息接收方中的接收状态。
14.一种电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-7中的任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-7中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110022604.6A CN113014470B (zh) | 2021-01-07 | 2021-01-07 | 即时通讯应用中会话消息的回执处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110022604.6A CN113014470B (zh) | 2021-01-07 | 2021-01-07 | 即时通讯应用中会话消息的回执处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014470A CN113014470A (zh) | 2021-06-22 |
CN113014470B true CN113014470B (zh) | 2022-04-08 |
Family
ID=76384621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110022604.6A Active CN113014470B (zh) | 2021-01-07 | 2021-01-07 | 即时通讯应用中会话消息的回执处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014470B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616382A (zh) * | 2008-06-27 | 2009-12-30 | 中兴通讯股份有限公司 | 一种短信回执的业务方法及系统 |
CN109274510A (zh) * | 2018-09-06 | 2019-01-25 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、客户端、服务器及存储介质 |
CN109688051A (zh) * | 2018-12-29 | 2019-04-26 | 天津字节跳动科技有限公司 | 会话列表显示方法、装置和电子设备 |
CN111190512A (zh) * | 2018-11-15 | 2020-05-22 | 阿里巴巴集团控股有限公司 | 消息处理方法及其装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9560001B1 (en) * | 2012-04-02 | 2017-01-31 | Google Inc. | Managing notifications across services |
CN103731334B (zh) * | 2012-10-10 | 2019-02-26 | 中兴通讯股份有限公司 | 消息状态展示方法及装置 |
CN104348849B (zh) * | 2013-07-25 | 2019-06-14 | 腾讯科技(深圳)有限公司 | 即时通讯键-值数据下发方法、服务器、客户端及系统 |
CN104144116B (zh) * | 2014-07-16 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 即时通讯方法及即时通讯系统 |
CN105812235B (zh) * | 2016-03-04 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 消息处理方法、装置及系统 |
CN106100972B (zh) * | 2016-06-02 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、系统、第一终端及第二终端 |
CN108156205B (zh) * | 2016-12-06 | 2021-01-22 | 阿里巴巴(中国)有限公司 | 消息推送方法、客户端、服务端及可编程设备 |
CN109842541B (zh) * | 2017-11-24 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 信息处理方法、装置及存储介质 |
CN108989062B (zh) * | 2018-07-25 | 2020-05-01 | 北京达佳互联信息技术有限公司 | 更新群成员数据的方法、装置、终端、系统及存储介质 |
CN109194565A (zh) * | 2018-08-23 | 2019-01-11 | 广东五科技股份有限公司 | 一种消息已读状态提示方法和装置 |
CN111147351B (zh) * | 2019-12-19 | 2022-02-08 | 东软集团股份有限公司 | 群消息回执的更新方法、装置、可读存储介质及电子设备 |
-
2021
- 2021-01-07 CN CN202110022604.6A patent/CN113014470B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616382A (zh) * | 2008-06-27 | 2009-12-30 | 中兴通讯股份有限公司 | 一种短信回执的业务方法及系统 |
CN109274510A (zh) * | 2018-09-06 | 2019-01-25 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、客户端、服务器及存储介质 |
CN111190512A (zh) * | 2018-11-15 | 2020-05-22 | 阿里巴巴集团控股有限公司 | 消息处理方法及其装置 |
CN109688051A (zh) * | 2018-12-29 | 2019-04-26 | 天津字节跳动科技有限公司 | 会话列表显示方法、装置和电子设备 |
Non-Patent Citations (1)
Title |
---|
基于Android的阅读回执即时通讯系统的研究和开发;王玉明等;《现代计算机(专业版)》;20171225(第36期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113014470A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110311983B (zh) | 服务请求的处理方法、装置、系统、电子设备及存储介质 | |
CN111756917B (zh) | 信息交互方法、电子设备和计算机可读介质 | |
US10069640B2 (en) | Methods and devices for adding new member to group through barcode scanning | |
CN105553831B (zh) | 消息投放方法和系统 | |
US11799807B2 (en) | Mail processing method and apparatus, device and medium | |
CN111460049A (zh) | 内容分享方法、装置、电子设备及计算机可读存储介质 | |
WO2011155996A2 (en) | Group messaging integration system, method and apparatus | |
CN109446204B (zh) | 一种即时通信的数据存储方法、装置、电子设备和介质 | |
CN109302340B (zh) | 一种埋点数据上报方法、装置及计算机可读存储介质 | |
EP3105891A1 (en) | Instant messaging with non subscriber users | |
CN113645127B (zh) | 消息路由方法、装置、电子设备和计算机可读存储介质 | |
CN106357654B (zh) | 远程过程调用方法、装置及通信系统 | |
CN110109594B (zh) | 一种绘图数据分享方法、装置、存储介质以及设备 | |
CN106921554B (zh) | 消息传输方法及装置 | |
CN110913270B (zh) | 直播方法和装置 | |
US9942177B1 (en) | Method and system for real-time data updates | |
US20150156157A1 (en) | Association method and device for communications modes | |
CN113014470B (zh) | 即时通讯应用中会话消息的回执处理方法及装置 | |
WO2016149312A1 (en) | Information sharing control | |
CN106912032B (zh) | 一种信息处理方法、系统、客户端和服务器 | |
CN113127561B (zh) | 业务单号的生成方法、装置、电子设备和存储介质 | |
CN109347973B (zh) | 一种客户端即时通讯方法及系统 | |
CN113766437B (zh) | 一种短信发送方法和装置 | |
CN110858817A (zh) | 用于加入群聊、领取资源的方法和设备 | |
CN115086425B (zh) | 消息传输方法、装置、程序产品、介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40046500 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |