CN113923176B - 即时通讯的消息撤回方法、装置、设备及计算机可读介质 - Google Patents

即时通讯的消息撤回方法、装置、设备及计算机可读介质 Download PDF

Info

Publication number
CN113923176B
CN113923176B CN202111163418.0A CN202111163418A CN113923176B CN 113923176 B CN113923176 B CN 113923176B CN 202111163418 A CN202111163418 A CN 202111163418A CN 113923176 B CN113923176 B CN 113923176B
Authority
CN
China
Prior art keywords
message
storage
target
request
instant messaging
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
Application number
CN202111163418.0A
Other languages
English (en)
Other versions
CN113923176A (zh
Inventor
窦志同
覃建策
王贵喜
杨元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Perfect World Beijing Software Technology Development Co Ltd
Original Assignee
Perfect World Beijing Software Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Perfect World Beijing Software Technology Development Co Ltd filed Critical Perfect World Beijing Software Technology Development Co Ltd
Priority to CN202111163418.0A priority Critical patent/CN113923176B/zh
Publication of CN113923176A publication Critical patent/CN113923176A/zh
Application granted granted Critical
Publication of CN113923176B publication Critical patent/CN113923176B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-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/18Commands or executable codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种即时通讯的消息撤回方法、装置、设备及计算机可读介质。该方法包括:响应即时通讯客户端发送的消息撤回请求,根据消息撤回请求中携带的指示信息查询即时通讯客户端所要撤回的目标消息;在查询结果指示消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记,并向即时通讯客户端返回消息撤回成功指示,其中,消息存储数据库采用异步存储方式异步入库消息撤回请求和消息写入请求,删除标记用于在处理消息写入请求时,跳转执行消息撤回操作。本申请解决了异步存储系统中,消息乱序导致消息撤回可能失败的技术问题。

Description

即时通讯的消息撤回方法、装置、设备及计算机可读介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种即时通讯的消息撤回方法、装置、设备及计算机可读介质。
背景技术
即时通讯(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。即时通讯系统的消息存储可以采用同步存储和异步存储的逻辑。同步存储就是服务端的消息存储数据库按照接收消息的顺序依次将各条消息入库,而异步存储则是消息存储数据库并行入库多条消息,即弱化接收消息的顺序的影响,采用并行的方式入库多条消息。
撤回消息是即时通讯中误发送错误消息后的补救措施,目前,在同步存储消息的即时通讯系统中,服务端在入库消息撤回请求时,必然在先已经入库了所要撤回的目标消息。然而在异步存储消息的即时通讯系统中,若并行入库多条消息时,目标消息的撤回请求先于写入请求入库,则即时通讯客户端的撤回消息的操作就很可能失败。
针对异步存储系统中,消息乱序导致消息撤回可能失败的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种即时通讯的消息撤回方法、装置、设备及计算机可读介质,以解决异步存储系统中,消息乱序导致消息撤回可能失败的技术问题。
根据本申请实施例的一个方面,本申请提供了一种即时通讯的消息撤回方法,包括:
响应即时通讯客户端发送的消息撤回请求,根据消息撤回请求中携带的指示信息查询即时通讯客户端所要撤回的目标消息,其中,即时通讯客户端发出消息撤回请求的时间晚于即时通讯客户端发出消息写入请求的时间,消息写入请求用于申请将目标消息写入消息存储数据库;
在查询结果指示消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记,并向即时通讯客户端返回消息撤回成功指示,其中,消息存储数据库采用异步存储方式异步入库消息撤回请求和消息写入请求,删除标记用于在处理消息写入请求时,跳转执行消息撤回操作。
可选地,在消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记包括:
根据消息撤回请求中携带的指示信息确定目标消息的存储标识;
将以存储标识为主键,包含删除标记对应值的键值对写入消息存储数据库。
可选地,在消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记还包括:
根据消息撤回请求中携带的指示信息确定目标消息的第一存储标识,并为删除标记分配第二存储标识;
建立第一存储标识和第二存储标识的第一映射关系,并将以第二存储标识为主键,包含所述删除标记对应值的键值对写入所述消息存储数据库。
可选地,在消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记还包括:
根据消息撤回请求中携带的指示信息确定目标消息的存储标识;
建立存储标识和删除标记的第二映射关系,并将删除标记写入目标数据表,其中,目标数据表用于记录在消息撤回请求先于消息写入请求处理的情况下所插入的删除标记。
可选地,在处理消息写入请求时,所述方法包括:
从消息写入请求中提取所要写入的目标消息的存储标识;
以所述存储标识作为主键在所述消息存储数据库中查询所述存储标识的键值;
在查询到所述存储标识的键值包含所述删除标记对应值的情况下,执行所述消息撤回操作。
可选地,在处理消息写入请求时,所述方法还包括:
从消息写入请求中提取所要写入的目标消息的第一存储标识;
在所述消息存储数据库中找到与所述第一存储标识具有所述第一映射关系的所述第二存储标识的情况下,以所述第二存储标识为主键在所述消息存储数据库中查询所述第二存储标识的键值;
在查询到所述第二存储标识的键值包含所述删除标记对应值的情况下,执行所述消息撤回操作。
可选地,在处理消息写入请求时,所述方法还包括:
从消息写入请求中提取所要写入的目标消息的存储标识;
在目标数据表中找到与存储标识具有第二映射关系的删除标记的情况下,执行消息撤回操作。
可选地,执行消息撤回操作包括:
丢弃目标消息;或者,
用目标消息替换删除标记,并将目标消息的删除标志位设置为目标值,其中,删除标志位处于目标值表示目标消息处于不展示在所有客户端上且无法被客户端查询的状态。
根据本申请实施例的另一方面,本申请提供了一种即时通讯的消息撤回装置,包括:
消息查找模块,用于响应即时通讯客户端发送的消息撤回请求,根据消息撤回请求中携带的指示信息查询即时通讯客户端所要撤回的目标消息,其中,即时通讯客户端发出消息撤回请求的时间晚于即时通讯客户端发出消息写入请求的时间,消息写入请求用于申请将目标消息写入消息存储数据库;
撤回结果确定模块,用于在查询结果指示消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记,并向即时通讯客户端返回消息撤回成功指示,其中,消息存储数据库采用异步存储方式异步入库消息撤回请求和消息写入请求,删除标记用于在处理消息写入请求时,跳转执行消息撤回操作。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请技术方案为响应即时通讯客户端发送的消息撤回请求,根据消息撤回请求中携带的指示信息查询即时通讯客户端所要撤回的目标消息,其中,即时通讯客户端发出消息撤回请求的时间晚于即时通讯客户端发出消息写入请求的时间,消息写入请求用于申请将目标消息写入消息存储数据库;在查询结果指示消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记,并向即时通讯客户端返回消息撤回成功指示,其中,消息存储数据库采用异步存储方式异步入库消息撤回请求和消息写入请求,删除标记用于在处理消息写入请求时,跳转执行消息撤回操作。本申请在消息乱序情况下,先插入目标消息对应的删除标记,使得后于消息撤回请求入库的目标消息根据对应的删除标记被执行撤回操作而无法入库,避免了先入库消息撤回请求后撤回(在会话中删除)了空消息,之后入库消息写入请求时又存储(在会话中插入)了该条消息的混乱情况,解决了异步存储系统中,消息乱序导致消息撤回可能失败的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的即时通讯的消息撤回方法硬件环境示意图;
图2为根据本申请实施例提供的一种可选的即时通讯的消息撤回方法流程示意图;
图3为根据本申请实施例提供的一种可选的即时通讯的消息撤回装置框图;
图4为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
相关技术中,在同步存储消息的即时通讯系统中,服务端在入库消息撤回请求时,必然在先已经入库了所要撤回的目标消息。然而在异步存储消息的即时通讯系统中,若并行入库多条消息时,目标消息的撤回请求先于写入请求入库,则即时通讯客户端的撤回消息的操作就很可能失败。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种即时通讯的消息撤回方法的实施例。
可选地,在本申请实施例中,上述即时通讯的消息撤回方法可以应用于如图1所示的由即时通讯客户端101和即时通讯服务端103所构成的硬件环境中。如图1所示,即时通讯服务端103通过网络与即时通讯客户端101进行连接,可用于为即时通讯客户端或即时通讯客户端上安装的客户端提供服务(如即时通讯服务),可在即时通讯服务端上或独立即时通讯服务端设置异步存储数据库105,用于为即时通讯服务端103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,即时通讯客户端101包括但不限于PC、手机、平板电脑等。
本申请实施例中的一种即时通讯的消息撤回方法可以由即时通讯服务端103来执行,如图2所示,该方法可以包括以下步骤:
步骤S202,响应即时通讯客户端发送的消息撤回请求,根据消息撤回请求中携带的指示信息查询即时通讯客户端所要撤回的目标消息,其中,即时通讯客户端发出消息撤回请求的时间晚于即时通讯客户端发出消息写入请求的时间,消息写入请求用于申请将目标消息写入消息存储数据库。
即时通讯服务是两人或多人使用网络实时的传递文字消息、文件、语音与视频交流,多个用户的即时通讯客户端接入即时通讯服务端,即时通讯消息通过服务端传递,即A客户端要与B客户端进行即时通讯,则A客户端发送的消息先发送至服务端,服务端再将消息转发给B客户端。
本申请实施例中,即时通讯客户端先后向服务端发送目标消息的消息写入请求和消息撤回请求,消息写入请求用于申请将目标消息写入服务端的消息存储数据库,消息撤回请求用于申请撤回该目标消息。采用异步存储方式的即时通讯系统中,服务端并行执行多个消息、多个请求的入库操作,即弱化接收消息的顺序并行执行入库,此时就存在目标消息的消息撤回请求先于消息写入请求入库的情况。
本申请实施例中,消息写入请求和消息撤回请求中均携带有所要撤回的消息的指示信息,服务端根据指示信息能够在消息存储数据库中找到所要撤回的目标信息。
步骤S204,在查询结果指示消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记,并向即时通讯客户端返回消息撤回成功指示,其中,消息存储数据库采用异步存储方式异步入库消息撤回请求和消息写入请求,删除标记用于在处理消息写入请求时,跳转执行消息撤回操作。
本申请提供的即时通讯的消息撤回方法,针对采用异步存储的即时通讯系统,解决在消息乱序的情况下的消息撤回可能失败的问题,即避免针对C消息的消息撤回请求先于消息写入请求入库,导致撤回了空消息,又在入库C消息的消息写入请求时插入了C消息,结果就是要撤回的C消息最终还是出现在了会话中,撤回失败。当出现消息乱序的情况下,消息撤回请求先于消息写入请求入库,而此时服务端根据消息撤回请求中的指示信息是无法找到所要撤回的目标消息的,因为还未入库消息写入请求,因此为了避免后于消息撤回请求入库的目标消息出现在会话中,本申请服务端可以在消息存储数据库中插入与该目标消息对应的删除标记,从而使得后于消息撤回请求入库的目标消息根据对应的删除标记被执行撤回操作而无法入库。因此,即使还未入库消息写入请求,插入了删除标记后服务端即可向客户端返回消息撤回成功指示,且保证撤回的目标消息不会出现在会话中。
通过上述步骤S202至S204,本申请在消息乱序情况下,先插入目标消息对应的删除标记,使得后于消息撤回请求入库的目标消息根据对应的删除标记被执行撤回操作而无法入库,避免了先入库消息撤回请求后撤回(在会话中删除)了空消息,之后入库消息写入请求时又存储(在会话中插入)了该条消息的混乱情况,解决了异步存储系统中,消息乱序导致消息撤回可能失败的技术问题。
本申请提供了三种插入删除标记的方式,对应不同的方式,提供了入库消息写入请求的不同方式,下面对三种插入删除标记的方式及对应的入库消息写入请求的方式进行一一说明。
第一种插入删除标记的方式,在消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记包括:
步骤1,根据消息撤回请求中携带的指示信息确定目标消息的存储标识;
步骤2,将以存储标识为主键,包含所述删除标记对应值的键值对写入所述消息存储数据库。
本申请实施例中,第一种插入删除标记的方式是将目标消息入库时要采用的主键设置为删除标记的主键。目标消息和删除标记共用同一个主键,因为数据库中主键是唯一存在的,因此在已经入库了删除标记之后,目标消息就无法入库,也就解决了已经撤回的消息又重新出现在了会话中的错误情况。主键可以是目标消息的存储标识,存储标识可以通过消息撤回请求中携带的指示信息得到。
对应第一种删除标记的插入方式,提供一种消息写入请求的入库方式。
可选地,在处理消息写入请求时,所述方法包括:
步骤1,从消息写入请求中提取所要写入的目标消息的存储标识;
步骤2,以存储标识作为主键在消息存储数据库中查询存储标识的键值;
步骤3,在查询到存储标识的键值包含删除标记对应值的情况下,执行消息撤回操作。
本申请实施例中,消息写入请求入库时,服务端先从消息写入请求中提取目标消息的存储标识,用存储标识作为主键先在消息存储数据库中查询该存储标识是否已经被使用。存储标识未被使用时,查询得到的存储标识的键值为空值,存储标识被使用时,查询得到的存储标识的键值为非空值,如该删除标记对应值。被使用的情况下则目标消息就无法入库了,且查询到的键值为该删除标记对应值的情况下,确定即时通讯客户端对该目标消息申请了撤回,因此执行消息撤回操作。
若存储标识未被使用,则将目标消息正常入库,即将以存储标识为主键,以目标消息为键值组成的键值对写入消息存储数据库。
第二种插入删除标记的方式,在消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记还包括:
步骤1,根据消息撤回请求中携带的指示信息确定目标消息的第一存储标识,并为删除标记分配第二存储标识;
步骤2,建立第一存储标识和第二存储标识的第一映射关系,并将以第二存储标识为主键,包含删除标记对应值的键值对写入消息存储数据库。
本申请实施例中,第二种插入删除标记的方式是区别于目标消息的主键(即第一存储标识)单独为删除标记分配一个主键,即第二存储标识,只是将删除标记的主键和目标消息的主键建立映射关系,通过一个主键能够找到另一个主键,由此来将目标消息与删除标记关联。目标消息和删除标记不共用同一个主键,能够实现更多操作,便于灵活的扩展其他需求。
对应第二种删除标记的插入方式,提供另一种消息写入请求的入库方式。
可选地,在处理消息写入请求时,所述方法还包括:
步骤1,从消息写入请求中提取所要写入的目标消息的第一存储标识;
步骤2,在消息存储数据库中找到与第一存储标识具有第一映射关系的第二存储标识的情况下,以第二存储标识为主键在消息存储数据库中查询第二存储标识的键值;
步骤3,在查询到第二存储标识的键值包含删除标记对应值的情况下,执行消息撤回操作。
本申请实施例中,消息写入请求入库时,服务端先从消息写入请求中提取目标消息的第一存储标识,并在消息存储数据库中查询该第一存储标识是否存在映射关系,若存在映射关系,则需要根据所存在的映射关系判断对目标消息所需执行的操作,若不存在映射关系,则确定该目标消息未绑定附加操作,即可直接执行入库操作。存在上述第一映射关系,且根据该第一映射关系找到第二存储标识后,继续以第二存储标识为主键,查询第二存储标识的键值,以确定目标消息所绑定的附加操作。查询到第二存储标识的键值包含删除标记对应值的情况下,确定即时通讯客户端对该目标消息申请了撤回,因此执行消息撤回操作。
第三种插入删除标记的方式,在消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记还包括:
步骤1,根据消息撤回请求中携带的指示信息确定目标消息的存储标识;
步骤2,建立存储标识和删除标记的第二映射关系,并将删除标记写入目标数据表,其中,目标数据表用于记录在消息撤回请求先于消息写入请求处理的情况下所插入的删除标记。
本申请实施例中,第三种插入删除标记的方式是单独将删除标记用一个数据表来记录,只是将删除标记与目标消息的主键(存储标识)建立映射关系,通过目标消息的主键能够在该目标数据表中找到具有第二映射关系的删除标记,由此来将目标消息与删除标记关联。在消息撤回请求先于消息写入请求入库时服务端才会在该目标数据表中插入目标消息对应的删除标记。单独采用一个数据表来记录所有的删除标记可以实现信息的聚合,便于入库消息写入请求时快速查询所要入库的目标消息是否存在对应的删除记录。
对应第三种删除标记的插入方式,提供又一种消息写入请求的入库方式。
可选地,在处理消息写入请求时,所述方法还包括:
步骤1,从消息写入请求中提取所要写入的目标消息的存储标识;
步骤2,在目标数据表中找到与存储标识具有第二映射关系的删除标记的情况下,执行消息撤回操作。
本申请实施例中,消息写入请求入库时,服务端先从消息写入请求中提取目标消息的存储标识,并直接在单独存放删除标记的目标数据表中查询该存储标识是否存在映射关系,若存在具有第二映射关系的删除标记,则确定即时通讯客户端对该目标消息申请了撤回,因此执行消息撤回操作。若不存在映射关系,则确定该目标消息未被申请撤回,即可直接执行入库操作。
可选地,执行消息撤回操作包括:
丢弃目标消息;或者,
用目标消息替换删除标记,并将目标消息的删除标志位设置为目标值,其中,删除标志位处于目标值表示目标消息处于不展示在所有客户端上且无法被客户端查询的状态。
本申请实施例中,执行消息撤回操作可以采用硬删除的方式,直接丢弃目标消息,也可以采用软删除的方式,用目标消息替换删除标记,只是将目标消息的删除标志位设置为目标值,实现消息撤回。在已经插入了和目标消息对应的删除标记的情况下,服务端执行该目标消息的撤回操作时,可以用目标消息替换删除标记,但将该目标消息的删除标志位由默认值0更新为该目标值1,删除标志位的目标值1用于指示该目标消息处于不展示在所有客户端且无法被客户端查询的状态,即在客户端上完全删除,但消息数据实际保留在了服务端,以此可以在特殊情况下调取到该目标消息,如为了配合相关部门的证据搜查需要,必要时可从消息存储数据库中调取目标消息。
本申请实施例中,在消息顺序正常的情况下,可以将目标消息的删除标志位由默认值0更新为该目标值1,同时通知已经收到目标消息的即时通讯客户端删除消息记录,实现撤回功能。
本申请实施例中,即时通讯客户端在调取消息记录即查询消息时,服务端只向即时通讯客户端提供删除标志位的值为默认值0的消息,而隐藏删除标志位的值为目标值1的消息。
本申请实施例中,还可以采用消息缓存,即在服务端的消息存储数据库之外另设缓存,用于接收即时通讯客户端的即时通讯消息,目标消息到达该缓存时,服务端先判断消息数据库中是否存在该目标消息对应的删除标记,如果没有,则将目标消息从缓存中入库至消息存储数据库,而如果存在对应的删除标记,则确定即时通讯客户端已经对该还未入库的目标消息申请了撤回,执行消息撤回操作。
根据本申请实施例的又一方面,如图3所示,提供了一种即时通讯的消息撤回装置,包括:
消息查找模块301,用于响应即时通讯客户端发送的消息撤回请求,根据消息撤回请求中携带的指示信息查询即时通讯客户端所要撤回的目标消息,其中,即时通讯客户端发出消息撤回请求的时间晚于即时通讯客户端发出消息写入请求的时间,消息写入请求用于申请将目标消息写入消息存储数据库;
撤回结果确定模块303,用于在查询结果指示消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记,并向即时通讯客户端返回消息撤回成功指示,其中,消息存储数据库采用异步存储方式异步入库消息撤回请求和消息写入请求,删除标记用于在处理消息写入请求时,跳转执行消息撤回操作。
需要说明的是,该实施例中的消息查找模块301可以用于执行本申请实施例中的步骤S202,该实施例中的撤回结果确定模块303可以用于执行本申请实施例中的步骤S204。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该撤回结果确定模块,还包括删除标记插入单元,用于:
根据消息撤回请求中携带的指示信息确定目标消息的存储标识;
将以存储标识为主键,包含删除标记对应值的键值对写入消息存储数据库。
可选地,该删除标记插入单元,还用于:
根据消息撤回请求中携带的指示信息确定目标消息的第一存储标识,并为删除标记分配第二存储标识;
建立第一存储标识和第二存储标识的第一映射关系,并将以第二存储标识为主键,包删除标记对应值的键值对写入消息存储数据库。
可选地,该删除标记插入单元,还用于:
根据消息撤回请求中携带的指示信息确定目标消息的存储标识;
建立存储标识和删除标记的第二映射关系,并将删除标记写入目标数据表,其中,目标数据表用于记录在消息撤回请求先于消息写入请求处理的情况下所插入的删除标记。
可选地,该即时通讯的消息撤回装置,还包括消息写入请求入库模块,具体用于:
从消息写入请求中提取所要写入的目标消息的存储标识;
以存储标识作为主键在消息存储数据库中查询存储标识的键值;
在查询到存储标识的键值包含删除标记的情况下,执行消息撤回操作。
可选地,该消息写入请求入库模块,还用于:
从消息写入请求中提取所要写入的目标消息的第一存储标识;
在消息存储数据库中找到与第一存储标识具有第一映射关系的第二存储标识的情况下,以第二存储标识为主键在消息存储数据库中查询第二存储标识的键值;
在查询到第二存储标识的键值包含删除标记对应值的情况下,执行消息撤回操作。
可选地,该消息写入请求入库模块,还用于:
从消息写入请求中提取所要写入的目标消息的存储标识;
在目标数据表中找到与存储标识具有第二映射关系的删除标记的情况下,执行消息撤回操作。
可选地,该即时通讯的消息撤回装置,还包括消息撤回操作执行模块,具体用于:
丢弃目标消息;或者,
用目标消息替换删除标记,并将目标消息的删除标志位设置为目标值,其中,删除标志位处于目标值表示目标消息处于不展示在所有客户端上且无法被客户端查询的状态。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图4所示,包括存储器401、处理器403、通信接口405及通信总线407,存储器401中存储有可在处理器403上运行的计算机程序,存储器401、处理器403通过通信接口405和通信总线407进行通信,处理器403执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例的步骤。
可选地,在本申请实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
在处理即时通讯客户端发送的消息撤回请求时,根据消息撤回请求中携带的指示信息查询即时通讯客户端所要撤回的目标消息,其中,即时通讯客户端发出消息撤回请求的时间晚于即时通讯客户端发出消息写入请求的时间,消息写入请求用于申请将目标消息写入消息存储数据库;
在查询结果指示消息存储数据库中还未写入目标消息的情况下,向消息存储数据库插入与目标消息对应的删除标记,并向即时通讯客户端返回消息撤回成功指示,其中,消息存储数据库采用异步存储方式异步入库消息撤回请求和消息写入请求,删除标记用于在处理消息写入请求时,跳转执行消息撤回操作。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种即时通讯的消息撤回方法,其特征在于,包括:
响应即时通讯客户端发送的消息撤回请求,根据所述消息撤回请求中携带的指示信息查询所述即时通讯客户端所要撤回的目标消息,其中,所述即时通讯客户端发出所述消息撤回请求的时间晚于所述即时通讯客户端发出消息写入请求的时间,所述消息写入请求用于申请将所述目标消息写入消息存储数据库;
在查询结果指示所述消息存储数据库中还未写入所述目标消息的情况下,以所述目标消息对应的存储标识为主键,向所述消息存储数据库插入与所述目标消息对应的删除标记,以使所述删除标记在所述消息存储数据库中占据所述目标消息的存储位置,并向所述即时通讯客户端返回消息撤回成功指示,其中,所述消息存储数据库采用异步存储方式异步入库所述消息撤回请求和所述消息写入请求,所述删除标记用于在处理所述消息写入请求时,跳转执行消息撤回操作。
2.根据权利要求1所述的方法,其特征在于,在消息存储数据库中还未写入所述目标消息的情况下,向所述消息存储数据库插入与所述目标消息对应的删除标记包括:
根据所述消息撤回请求中携带的所述指示信息确定所述目标消息的存储标识;
将以所述存储标识为主键,包含所述删除标记对应值的键值对写入所述消息存储数据库。
3.根据权利要求1所述的方法,其特征在于,在消息存储数据库中还未写入所述目标消息的情况下,向所述消息存储数据库插入与所述目标消息对应的删除标记还包括:
根据所述消息撤回请求中携带的所述指示信息确定所述目标消息的第一存储标识,并为所述删除标记分配第二存储标识;
建立所述第一存储标识和所述第二存储标识的第一映射关系,并将以所述第二存储标识为主键,包含所述删除标记对应值的键值对写入所述消息存储数据库。
4.根据权利要求1所述的方法,其特征在于,在消息存储数据库中还未写入所述目标消息的情况下,向所述消息存储数据库插入与所述目标消息对应的删除标记还包括:
根据所述消息撤回请求中携带的所述指示信息确定所述目标消息的存储标识;
建立所述存储标识和所述删除标记的第二映射关系,并将所述删除标记写入目标数据表,其中,所述目标数据表用于记录在所述消息撤回请求先于所述消息写入请求处理的情况下所插入的删除标记。
5.根据权利要求2所述的方法,其特征在于,在处理所述消息写入请求时,所述方法包括:
从所述消息写入请求中提取所要写入的所述目标消息的所述存储标识;
以所述存储标识作为主键在所述消息存储数据库中查询所述存储标识的键值;
在查询到所述存储标识的键值包含所述删除标记对应值的情况下,执行所述消息撤回操作。
6.根据权利要求3所述的方法,其特征在于,在处理所述消息写入请求时,所述方法还包括:
从所述消息写入请求中提取所要写入的所述目标消息的所述第一存储标识;
在所述消息存储数据库中找到与所述第一存储标识具有所述第一映射关系的所述第二存储标识的情况下,以所述第二存储标识为主键在所述消息存储数据库中查询所述第二存储标识的键值;
在查询到所述第二存储标识的键值包含所述删除标记对应值的情况下,执行所述消息撤回操作。
7.根据权利要求4所述的方法,其特征在于,在处理所述消息写入请求时,所述方法还包括:
从所述消息写入请求中提取所要写入的所述目标消息的所述存储标识;
在所述目标数据表中找到与所述存储标识具有所述第二映射关系的所述删除标记的情况下,执行所述消息撤回操作。
8.根据权利要求1至7任一所述的方法,其特征在于,执行消息撤回操作包括:
丢弃所述目标消息;或者,
用所述目标消息替换所述删除标记,并将所述目标消息的删除标志位设置为目标值,其中,所述删除标志位处于所述目标值表示所述目标消息处于不展示在所有客户端上且无法被客户端查询的状态。
9.一种即时通讯的消息撤回装置,其特征在于,包括:
消息查找模块,用于响应即时通讯客户端发送的消息撤回请求,根据所述消息撤回请求中携带的指示信息查询所述即时通讯客户端所要撤回的目标消息,其中,所述即时通讯客户端发出所述消息撤回请求的时间晚于所述即时通讯客户端发出消息写入请求的时间,所述消息写入请求用于申请将所述目标消息写入消息存储数据库;
撤回结果确定模块,用于在查询结果指示所述消息存储数据库中还未写入所述目标消息的情况下,以所述目标消息对应的存储标识为主键,向所述消息存储数据库插入与所述目标消息对应的删除标记,以使所述删除标记在所述消息存储数据库中占据所述目标消息的存储位置,并向所述即时通讯客户端返回消息撤回成功指示,其中,所述消息存储数据库采用异步存储方式异步入库所述消息撤回请求和所述消息写入请求,所述删除标记用于在处理所述消息写入请求时,跳转执行消息撤回操作。
10.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至8任一项所述的方法的步骤。
11.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至8任一所述方法。
CN202111163418.0A 2021-09-30 2021-09-30 即时通讯的消息撤回方法、装置、设备及计算机可读介质 Active CN113923176B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111163418.0A CN113923176B (zh) 2021-09-30 2021-09-30 即时通讯的消息撤回方法、装置、设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111163418.0A CN113923176B (zh) 2021-09-30 2021-09-30 即时通讯的消息撤回方法、装置、设备及计算机可读介质

Publications (2)

Publication Number Publication Date
CN113923176A CN113923176A (zh) 2022-01-11
CN113923176B true CN113923176B (zh) 2023-05-23

Family

ID=79237708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111163418.0A Active CN113923176B (zh) 2021-09-30 2021-09-30 即时通讯的消息撤回方法、装置、设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN113923176B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019076215A1 (zh) * 2017-10-18 2019-04-25 阿里巴巴集团控股有限公司 一种消息处理方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352448B2 (en) * 2007-01-23 2013-01-08 International Business Machines Corporation Securely deleting data in a transactionally consistent manner
US9495420B2 (en) * 2013-05-22 2016-11-15 International Business Machines Corporation Distributed feature collection and correlation engine
CN106921619B (zh) * 2015-12-24 2020-04-14 阿里巴巴集团控股有限公司 一种关联事件处理方法及装置
CN105872995A (zh) * 2016-03-28 2016-08-17 乐视控股(北京)有限公司 一种撤销发出的短信的方法及装置
CN108390813A (zh) * 2017-02-03 2018-08-10 阿里巴巴集团控股有限公司 即时通讯消息撤回、修改方法、即时通讯客户端及服务端
CN108966159B (zh) * 2018-09-03 2022-03-01 平安科技(深圳)有限公司 短信撤回方法、系统、计算机设备和存储介质
US11516165B2 (en) * 2019-04-10 2022-11-29 Microsoft Technology Licensing, Llc Revoking messages within a message chain
CN111179008B (zh) * 2019-07-22 2024-02-20 腾讯科技(深圳)有限公司 一种信息状态的更新方法、装置、系统及存储介质
US11500857B2 (en) * 2020-01-31 2022-11-15 Salesforce, Inc. Asynchronous remote calls with undo data structures
CN112118171A (zh) * 2020-09-04 2020-12-22 完美世界控股集团有限公司 消息互通系统、方法、装置、计算机设备及可读存储介质
CN112187629B (zh) * 2020-10-20 2022-04-29 珠海市小源科技有限公司 5g通信的消息撤回方法、计算机装置及计算机可读存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019076215A1 (zh) * 2017-10-18 2019-04-25 阿里巴巴集团控股有限公司 一种消息处理方法及装置

Also Published As

Publication number Publication date
CN113923176A (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
US20200034334A1 (en) Blockchain-based cross-chain data access method and apparatus
CN107786638B (zh) 一种数据处理方法、装置及系统
US10013312B2 (en) Method and system for a safe archiving of data
CN110765076B (zh) 数据存储方法、装置、电子设备及存储介质
JP2012089094A5 (zh)
CN108093026B (zh) 多租户请求的处理方法及装置
CN109542857B (zh) 审计日志存储方法、查询方法、装置及相关设备
CN107918673B (zh) 订阅数据处理方法、装置、存储介质和计算机设备
US20110264767A1 (en) Interactive processing method and apparatus between content-id management servers
CN111884843A (zh) 一种消息处理方法、装置、电子设备及存储介质
WO2020215580A1 (zh) 一种分布式全局数据去重方法和装置
US11128622B2 (en) Method for processing data request and system therefor, access device, and storage device
CN113923176B (zh) 即时通讯的消息撤回方法、装置、设备及计算机可读介质
CN112865927B (zh) 消息送达验证方法、装置、计算机设备和存储介质
EP3572951A1 (en) A method for handling requests in a storage system and a storage node for a storage system
CN110727895A (zh) 一种敏感词发送方法、装置、电子设备及存储介质
CN112749172A (zh) 一种缓存与数据库之间的数据同步方法及系统
US20150100545A1 (en) Distributed database system and a non-transitory computer readable medium
CN116737764A (zh) 数据同步的方法和装置、电子设备和存储介质
CN110362535B (zh) 一种文件管理方法、装置及系统
CN107506378A (zh) 数据库访问的实现方法和装置
US20150256614A1 (en) Resource synchronization control method, device, and system
RU2010131947A (ru) Усовершенствованная система сервера контроля присутствия
CN109195202A (zh) 用于标识无线接入点的方法与设备
CN107463670B (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
GR01 Patent grant
GR01 Patent grant