CN108206776A - 一种群组历史消息的查询方法和装置 - Google Patents
一种群组历史消息的查询方法和装置 Download PDFInfo
- Publication number
- CN108206776A CN108206776A CN201611187696.9A CN201611187696A CN108206776A CN 108206776 A CN108206776 A CN 108206776A CN 201611187696 A CN201611187696 A CN 201611187696A CN 108206776 A CN108206776 A CN 108206776A
- Authority
- CN
- China
- Prior art keywords
- message
- group
- history
- request
- stored
- 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.)
- Granted
Links
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/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
Abstract
本发明实施例公开了一种群组历史消息的查询方法,所述方法包括:历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析所述查询群组历史消息的请求中的参数信息;其中,所述查询群组历史消息的请求中的参数信息指示所述客户端对应用户的身份信息与对群组历史消息的查询条件;所述历史消息服务器在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容,并将所述历史消息内容返回客户端。本发明实施例同时还公开了一种群组历史消息的查询装置。
Description
技术领域
本发明涉及通信领域,尤其涉及一种群组历史消息的查询方法和装置。
背景技术
目前即时通信服务中,对群组历史消息的存储主要采用关系型数据库,而关系型数据库由于性能瓶颈,难以适应当前网络环境下巨大的并发请求。同时,目前对群组历史消息的存储结构的设计上多采用统一存储的方式,未对群成员的历史消息进行区分,无法真实还原群聊场景。
现有技术将群组历史消息以群号和消息序号主键来存储,历史消息对每个群成员无差别,不符合实际的聊天场景。在一个群组中某成员由于某种原因中途退出了群聊,后来又加入了群聊,那么该成员不应该查询到其不在群中的历史消息,应该查询到的是与该成员对应的群组历史消息。然而现有的以群号和消息序号为主键来存储历史消息的方式不能保证历史消息的准确性。
发明内容
为解决上述技术问题,本发明实施例期望提供一种群组历史消息的查询方法和装置,使群组中的普通成员可以准确的查询到群组中的历史消息。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种群组历史消息的查询方法,所述方法包括:
历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析所述查询群组历史消息的请求中的参数信息;其中,所述查询群组历史消息的请求中的参数信息指示所述客户端对应用户的身份信息与对群组历史消息的查询条件;
所述历史消息服务器在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容,并将所述历史消息内容返回客户端。
上述方案中,当所述客户端为普通群成员客户端时,所述历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析所述查询群组历史消息的请求中的参数信息,包括:
所述历史消息服务器接收所述普通群成员客户端发送的查询群组历史消息的第一请求;
所述历史消息服务器解析出所述查询群组历史消息的第一请求中的参数包括:群ID、用户ID、消息的起始序号、消息结束序号、查询消息条数。
上述方案中,所述历史消息服务器在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容,并将所述历史消息内容返回客户端,包括:
所述历史消息服务器根据所述第一请求中群ID与用户ID生成与SSDB中预存储的第二有序列表相对应的表名;
所述历史消息服务器以所述第一请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第一查询条件,在所述预存储的第二有序列表中获取满足第一查询条件的第一消息序号列表;
所述历史消息服务器遍历所述第一消息序号列表,在预存储的哈希表中查询出与所述第一消息序号列表中每个消息序号相对应的消息内容并将所述消息内容返回至普通群成员客户端。
上述方案中,当所述客户端为超级管理员客户端时,所述历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析所述查询群组历史消息的请求中的参数信息,包括:
所述历史消息服务器接收超级管理员客户端发送的查询群组历史消息的第二请求;
所述历史消息服务器解析出查询群组历史消息的第二请求中的参数包括:群ID、消息的起始序号、消息结束序号、查询消息条数。
上述方案中,所述历史消息服务器在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容,并将所述历史消息内容返回客户端,包括:
所述历史消息服务器根据所述第二请求中群ID生成与SSDB中预存储的第一有序列表相对应的表名;
所述历史消息服务器以所述第二请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第二查询条件,在所述预存储的第一有序列表中获取满足第二查询条件的第二消息序号列表;
所述历史消息服务器遍历所述第二消息序号列表,在预存储的哈希表中查询出与所述第二消息序号列表中每个消息序号相对应的消息内容并将所述消息内容返回至超级管理员客户端。
上述方案中,所述方法还包括:
所述历史消息服务器接收即时通信服务器发送的群消息存储请求,并解析所述群消息存储请求中的参数信息;其中,所述群消息存储请求中的参数信息包括:群ID、消息序号、消息接收者的ID和消息内容;
所述历史消息服务器按照群消息的存储需求分别将所述群消息存储请求中的参数信息保存到与所述存储需求相对应的群组历史消息存储结构中,获取预存储的群组历史消息存储结构。
上述方案中,所述历史消息服务器按照群消息的存储需求分别将所述参数信息保存到与所述存储需求相对应的群组历史消息存储结构中,获取预存储的群组历史消息存储结构,包括:
所述历史消息服务器将所述群ID、所述消息序号与所述消息内容保存到SSDB的哈希表存储结构中,获取预存储的哈希表;其中,所述群ID为所述预存储的哈希表的表名,所述消息序号为所述预存储的哈希表的键、所述消息内容为所述预存储的哈希表的值;
所述历史消息服务器将所述群ID与所述消息序号保存到所述SSDB的第一有序列表中,获取预存储的第一有序列表;其中,所述预存储的第一有序列表的表名为所述群ID,所述预存储的第一有序列表的键和值分别为所述消息序号;
所述历史消息服务器将所述群ID、所述消息接收者ID与所述消息序号保存到所述SSDB的第二有序列表中,获取预存储的第二有序列表;其中,所述预存储的第二有序列表的表名为所述群ID加上所述消息接收者ID,所述预存储的第二有序列表的键和值分别为所述消息序号。
第二方面,本发明实施例提供了一种群组历史消息的查询装置,所述装置包括:接收模块,解析模块、查询模块和发送模块;其中,
所述接收模块,用于接收客户端发送的查询群组历史消息的请求;
所述解析模块,用于解析所述查询群组历史消息的请求中的参数信息;其中,所述查询群组历史消息的请求中的参数信息指示所述客户端对应用户的身份信息与对群组历史消息的查询条件;
所述查询模块,用于在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容;
所述发送模块,用于将所述历史消息内容返回至所述客户端。
上述方案中,所述接收模块,用于接收所述普通群成员客户端发送的查询群组历史消息的第一请求;
所述解析模块,用于解析出所述查询群组历史消息的第一请求中的参数,所述第一请求中的参数包括:群ID、用户ID、消息的起始序号、消息结束序号、查询消息条数。
上述方案中,所述装置还包括:生成模块和获取模块;其中,
所述生成模块,用于根据所述第一请求中群ID与用户ID生成与SSDB中预存储的所述第二有序列表相对应的表名;
所述获取模块,用于以所述第一请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第一查询条件,在所述预存储的第二有序列表中获取满足第一查询条件的第一消息序号列表;
所述查询模块,用于遍历所述第一消息序号列表,在预存储的哈希表中查询出与所述第一消息序号列表中每个消息序号相对应的消息内容;
所述发送模块,用于将所述消息内容返回至普通群成员客户端。
上述方案中,所述接收模块,用于接收普超级管理员客户端发送的查询群组历史消息的第二请求;
所述解析模块,用于解析出查询群组历史消息的第二请求中的参数,所述第二请求中的参数包括:群ID、消息的起始序号、消息结束序号、查询消息条数。
上述方案中,所述生成模块,用于根据所述第二请求中群ID生成与SSDB中预存储的所述第一有序列表相对应的表名;
所述获取模块,用于以所述第二请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第二查询条件,在所述预存储的第一有序列表中获取满足第二查询条件的第二消息序号列表;
所述查询模块,用于遍历所述第二消息序号列表,在预存储的哈希表中查询出与所述第二消息序号列表中每个消息序号相对应的消息内容;
所述发送模块,用于将所述消息内容返回至超级管理员客户端。
上述方案中,所述装置还包括:保存模块;其中,
所述接收模块,用于接收即时通信服务器发送的群消息存储请求;
所述解析模块,用于解析所述群消息存储请求中的参数信息;其中,所述群消息存储请求中的参数信息包括:群ID、消息序号、消息接收者的ID和消息内容;
所述保存模块,用于按照群消息的存储需求分别将所述群消息存储请求中的参数信息保存到与所述存储需求相对应的群组历史消息存储结构中;
所述获取模块,用于获取预存储的群组历史消息存储结构。
上述方案中,所述保存模块,用于将所述群ID、所述消息序号与所述消息内容保存到SSDB的哈希表存储结构中;
所述获取模块,用于获取预存储的哈希表;其中,所述群ID为所述预存储的哈希表的表名,所述消息序号为所述预存储的哈希表的键、所述消息内容为所述预存储的哈希表的值;
所述保存模块,还用于将所述群ID与所述消息序号保存到所述SSDB的第一有序列表中;
所述获取模块,还用于获取预存储的第一有序列表;其中,所述预存储的第一有序列表的表名为所述群ID,所述预存储的第一有序列表的键和值分别为所述消息序号;
所述保存模块,还用于将所述群ID、所述消息接收者ID与所述消息序号保存到所述SSDB的第二有序列表中,获取预存储的第二有序列表;
所述获取模块,还用于获取预存储的第二有序列表;其中,所述预存储的第二有序列表的表名为所述群ID加上所述消息接收者ID,所述预存储的第二有序列表的键和值分别为所述消息序号。
本发明实施例提供了一种群组历史消息的查询方法和装置,历史消息服务器将群消息按照不同的存储需求保存到相应的存储表中,在群组成员对历史消息进行查询时,根据历史消息查询请求中的参数信息分别为普通群成员与超级管理员提供相应的历史消息查询结果,使得每个普通群成员能够针对性查询群组历史消息,保证了历史消息的准确性,同时超级管理员可以查询任意时间段内的群组历史消息。
附图说明
图1为本发明实施例一提供的一种群组历史消息的查询方法流程示意图一;
图2为本发明实施例一提供的一种群组历史消息的查询方法流程示意图二;
图3为本发明实施例一提供的一种群组历史消息的查询方法流程示意图三;
图4为本发明实施例一提供的一种群组历史消息的查询方法流程示意图四;
图5为本发明实施例一提供的一种群组历史消息的查询方法流程示意图五;
图6为本发明实施例二提供的一种群组历史消息的存储方法流程示意图一;
图7为本发明实施例二提供的一种群组历史消息的存储方法流程示意图二;
图8为本发明实施例三提供的一种群组历史消息的查询装置结构示意图一;
图9为本发明实施例三提供的一种群组历史消息的查询装置结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
参见图1,其示出了本发明实施例提供的一种群组历史消息的查询方法,所述方法可以包括:
S101、历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析查询群组历史消息的请求中的参数信息;其中,查询群组历史消息的请求中的参数信息指示所述客户端对应用户的身份信息与对群组历史消息的查询条件;
S102、历史消息服务器在与身份信息相对应的预存储的群组历史消息存储结构中按照对群组历史消息的查询条件查询对应的历史消息内容,并将历史消息内容返回客户端。
具体地,客户端包括普通群成员客户端和超级管理员客户端,普通群成员客户端和超级管理员客户端查询群组历史消息的权限不同,普通群成员只能查询到与其自身相关的群消息,而超级管理员可以查询到群组中任意的历史消息,因此,普通群成员与超级管理员通过不同的有序列表查询从而获取不同的历史消息。
当客户端为普通群成员客户端时,参见图2,步骤S101包括步骤S101A1和S101A2:
S101A1、历史消息服务器接收普通群成员客户端发送的查询群组历史消息的第一请求。
需要说明的是,普通群成员客户端发送查询群组历史消息的第一请求中的请求参数为:群ID、用户ID、消息的起始序号、消息结束序号、查询消息条数。普通群成员客户端查询群组历史消息只能查询到其在群组时接收到的群历史消息。
S101A2、历史消息服务器解析出查询群组历史消息的第一请求中的参数包括:群ID、用户ID、消息的起始序号、消息结束序号、查询消息条数。
可以理解地,历史消息服务器接收到普通群成员客户端发送的查询群组历史消息的第一请求后,对查询群组历史消息的第一请求中所包含的参数进行解析。解析出查询群组历史消息的第一请求中所包含的参数后就可以根据参数信息对群组历史消息进行针对性的查询。
当客户端为超级管理员客户端时,参见图3,步骤S101包括步骤S101B1和S101B2:
S101B1、历史消息服务器接收超级管理员客户端发送的查询群组历史消息的第二请求。
需要说明的是,超级管理员客户端发送查询群组历史消息的第二请求中的请求参数为:群ID、消息的起始序号、消息结束序号、查询消息条数。超级管理员客户端可以查询到群组任意历史消息。
S101B2、历史消息服务器解析出查询群组历史消息的第二请求中的参数包括:群ID、消息的起始序号、消息结束序号、查询消息条数。
可以理解地,历史消息服务器接收到超级管理员客户端发送的查询群组历史消息的第二请求后,对查询群组历史消息的第二请求中所包含的参数进行解析。解析出查询群组历史消息的第二请求中所包含的参数后就可以根据参数信息对群组任意历史消息进行查询。
相应地,当客户端为普通群成员客户端时,参见图4,步骤S102包括步骤S102A1至S102A3:
S102A1、历史消息服务器根据第一请求中群ID与用户ID生成与快速非关系型数据库SSDB中预存储的第二有序列表相对应的表名。
可以理解地,根据群ID与用户ID生成发起历史消息查询请求的普通用户客户端的表名,该表名与SSDB中存储该用户群消息序号的第二有序表的表名是对应相同的,通过表名就可以将发起历史消息查询请求的普通用户的ID信息与SSDB中存储该用户群消息序号的第二有序表关联起来,在相应的第二有序列表中查询该用户对应的消息内容。
S102A2、历史消息服务器以第一请求中所述消息的起始序号、消息结束序号和查询消息条数为第一查询条件,在预存储的第二有序列表中获取满足第一查询条件的第一消息序号列表;
需要说明的是,第一消息序号列表为满足第一请求参数信息的消息序号的列表,通过第一消息序号列表可以获取消息序号对应的消息内容。若第一请求消息中的参数中没有消息的起始序号,则以最近的消息序号作为起始消息序号,结束消息序号可以为空。第一请求消息中的消息的起始序号、消息结束序号和查询消息条数指示了群组普通用户客户端查询的具体历史消息。
S102A3、历史消息服务器遍历所述第一消息序号列表,在预存储的哈希表中查询出与所述第一消息序号列表中每个消息序号相对应的消息内容并将所述消息内容返回至普通群成员客户端;
可以理解地,根据第一请求中的参数信息获取到了第一消息序号列表,将第一消息序号列表中每一个消息序号在哈希表中查询该消息序号所对应的消息内容,在获得了第一消息序号列表中的所有消息内容后,按照消息的顺序将消息内容返回给普通群成员客户端。
相应地,当客户端为超级管理员客户端时,参见图5,步骤S102包括步骤S102B1至S102B3:
S102B1、历史消息服务器根据第二请求中群ID生成与SSDB中预存储的第一有序列表相对应的表名。
可以理解地,根据群ID生成发起历史消息查询请求的超级管理员客户端的表名,该表名与SSDB中存储该用户群消息序号的第一有序表的表名是对应相同的,通过表名就可以将超级管理员所要查询的群ID与SSDB中存储该用户群消息序号的第一有序表关联起来,在相应的第一有序列表中查询该群组中任意的消息内容。
S102B2、历史消息服务器以第二请求中消息的起始序号、消息结束序号和查询消息条数为第二查询条件,在预存储的第一有序列表中获取满足第二查询条件的第二消息序号列表。
需要说明的是,第二消息序号列表为满足第二请求参数信息的消息序号的列表,通过第二消息序号列表可以获取消息序号对应的消息内容。若第二请求消息中的参数中没有消息的起始序号,则以最近的消息序号作为消息起始序号,消息结束序号可以为空。第二请求消息中消息的起始序号、消息结束序号和查询消息条数指示了超级管理员对群组任意历史消息的查询范围。
S102B3、历史消息服务器遍历所述第二消息序号列表,在预存储的哈希表中查询出与所述第二消息序号列表中每个消息序号相对应的消息内容并将所述消息内容返回至超级管理员客户端。
可以理解地,根据第二请求中的参数信息获取到了第二消息序号列表,将第二消息序号列表中每一个消息序号在哈希表中查询该消息序号所对应的消息内容,在获得了第二消息序号列表中的所有消息内容后,按照消息的顺序将消息内容返回给普通群成员客户端。
本发明实施例提供了一种群组历史消息的查询方法,在群组成员对历史消息进行查询时,根据历史消息查询请求中的参数信息分别为普通群成员与超级管理员提供相应的历史消息查询结果,使得每个普通群成员能够针对性查询群组历史消息,保证了历史消息的准确性,同时超级管理员可以查询任意时间段内的群组历史消息。
实施例二
在对群组历史消息查询之前预先将群组历史消息保存在群组历史消息存储结构中,通过将群组历史消息按照存储需求进行保存实现了在预存储的群组历史消息存储结构中对历史消息内容的查询,参见图6,其示出了本发明实施例提供的一种群组历史消息的存储方法,采用开源的高性能数据库服务器SSDB来存储历史消息,所述方法可以包括:
S201、历史消息服务器接收即时通信服务器发送的群消息存储请求,并解析群消息存储请求中的参数信息;其中,群消息存储请求中的参数信息包括:群ID、消息序号、消息接收者的ID和消息内容。
需要说明的是,即时通信(Instant Message,IM)是指能够即时发送和接收互联网消息等的业务。即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。在日常的即时通信中群组消息处理时,IM服务器接收到用户发送的群消息后,通过发送群消息存储请求到历史消息服务器将用户发送的群消息存储到历史消息服务器中。
历史消息服务器将IM服务器发送的群消息存储请求进行解析,得到消息存储请求中所包含的参数。解析出消息存储请求中的参数信息后,就可以根据参数信息对群消息进行有序的存储。
S202、历史消息服务器按照群消息的存储需求分别将群消息存储请求中的参数信息保存到与存储需求相对应的群组历史消息存储结构中,获取预存储的群组历史消息存储结构。
可以理解地,群ID为群组的唯一标识号;消息序号为群组中每一条群消息全局唯一的序号;消息接收者的ID为在该群组中接收群消息的用户的ID;消息内容为群组中每一条群消息的具体内容。
具体地,参见图7,步骤S202包括步骤S2021至S2023:
S2021、历史消息服务器将群ID、消息序号与消息内容保存到SSDB的哈希表存储结构中,获取预存储的哈希表;其中,群ID为预存储的哈希表的表名,消息序号为预存储的哈希表的键、消息内容为预存储的哈希表的值。
表1哈希表
需要说明的是,SSDB为开源的高性能数据库,该数据库拥有很高的性能,查询速度高,特别适合存储大量集合数据,支持丰富的数据结构。与目前广泛使用的MYSQL数据库相比,SSDB的写入速度是MYSQL的2倍多,而在未加索引的情况下SSDB的查询速度是MYSQL的数百倍。利用SSDB中的哈希表存储结构保存群组中的消息内容,每一条消息内容对应一个消息序号。哈希表中的键为哈希表中的关键字,而哈希表中的值为跟关键字对应的值,读取消息内容时可以通过消息序号获取跟消息序号相对应的消息内容。
因此,利用SSDB的哈希表存储结构就可以将该群组中所有的历史消息按照消息序号与消息内容一一对应的方式进行保存,通过消息序号就可以在哈希表中查询到消息序号所对应的消息内容。
S2022、历史消息服务器将群ID与消息序号保存到SSDB的第一有序列表中,获取预存储的第一有序列表;其中,预存储的第一有序列表的表名为所述群ID,预存储的第一有序列表的键和值分别为消息序号。
表2第一有序列表
需要说明的是,第一有序列表中保存的信息为群组中所有历史消息的消息序号与消息序号对应的顺序,第一有序列表与哈希表一起实现群消息的有序存储。在第一有序列表中键和值均为消息序号,这里将消息序号作为值用于对消息内容按照先后顺序进行排序。
因此,第一有序列表对于群组中所有的历史消息利用消息序号进行排序,可以保持该群组中所有历史消息的存储是按照消息序号进行保存的。这种存储方式使得在后续对历史消息的查询过程中可以保证对该群组全局消息查询的准确性。
S2023、历史消息服务器将所述群ID、消息接收者ID与消息序号保存到所述SSDB的第二有序列表中,获取预存储的第二有序列表;其中,预存储的第二有序列表的表名为群ID加上消息接收者ID,预存储的第二有序列表的键和值分别为所述消息序号。
表3第二有序列表
需要说明的是,群组中每一个消息接收者都分别存储有一个与其对应的第二有序列表,用作值的消息序号用于对群组历史消息进行排序,用作键的消息序号为消息接收者对应的群消息的指针,对消息接收者有序保存一份消息的指针,通过这种存储方式可以在对群组历史消息进行查询时精确的查询到群消息接收者历史消息。
可以理解地,第二有序列表以群ID和消息接收者ID作为群名,因此第二有序列表是对于群组中每一个消息接收者单独保存的一个群消息的有序列表,记录了该群组中每个群成员所接收到的消息序号以及每条消息的排序情况。
本发明实施例提供了一种群组历史消息的存储方法,历史消息服务器将群消息按照不同的存储需求保存到相应的存储表中,保证了历史消息的准确性。
实施例三
基于上述实施例,参见图8,本发明实施例提供一种群组历史消息的查询装置8,所述群组历史消息的查询装置8包括:接收模块801、解析模块802、查询模块803和发送模块804;其中,
所述接收模块801,用于接收客户端发送的查询群组历史消息的请求;
所述解析模块802,用于解析所述查询群组历史消息的请求中的参数信息;;其中,所述查询群组历史消息的请求中的参数信息指示所述客户端对应用户的身份信息与对群组历史消息的查询条件;
所述查询模块803,用于在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容;
所述发送模块804,用于将所述历史消息内容返回至所述客户端。
进一步地,所述接收模块801,用于接收所述普通群成员客户端发送的查询群组历史消息的第一请求;
所述解析模块802,用于解析出所述查询群组历史消息的第一请求中的参数,所述第一请求中的参数包括:群ID、用户ID、消息的起始序号、消息结束序号、查询消息条数。
进一步地,参见图9,所述装置8还包括:生成模块805和获取模块806;其中,
所述生成模块805,用于根据所述第一请求中群ID与用户ID生成与SSDB中预存储的所述第二有序列表相对应的表名;
所述获取模块806,用于以所述第一请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第一查询条件,在所述预存储的第二有序列表中获取满足第一查询条件的第一消息序号列表;
所述查询模块803,用于遍历所述第一消息序号列表,在预存储的哈希表中查询出与所述第一消息序号列表中每个消息序号相对应的消息内容;
所述发送模块804,用于将所述消息内容返回至普通群成员客户端。
进一步地,所述接收模块801,用于接收普超级管理员客户端发送的查询群组历史消息的第二请求;
所述解析模块802,用于解析出查询群组历史消息的第二请求中的参数,所述第二请求中的参数包括:群ID、消息的起始序号、消息结束序号、查询消息条数。
进一步地,所述生成模块805,用于根据所述第二请求中群ID生成与SSDB中预存储的所述第一有序列表相对应的表名;
所述获取模块806,用于以所述第二请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第二查询条件,在所述预存储的第一有序列表中获取满足第二查询条件的第二消息序号列表;
所述查询模块803,用于遍历所述第二消息序号列表,在预存储的哈希表中查询出与所述第二消息序号列表中每个消息序号相对应的消息内容;
所述发送模块804,用于将所述消息内容返回至超级管理员客户端。
进一步地,参见图9,所述装置8还包括:保存模块807;其中,
所述接收模块801,用于接收即时通信服务器发送的群消息存储请求;
所述解析模块802,用于解析所述群消息存储请求中的参数信息;其中,所述群消息存储请求中的参数信息包括:群ID、消息序号、消息接收者的ID和消息内容;
所述保存模块807,用于按照群消息的存储需求分别将所述群消息存储请求中的参数信息保存到与所述存储需求相对应的群组历史消息存储结构中;
所述获取模块806,用于获取预存储的群组历史消息存储结构。
进一步地,所述保存模块807,用于将所述群ID、所述消息序号与所述消息内容保存到SSDB的哈希表存储结构中;
所述获取模块806,用于获取预存储的哈希表;其中,所述群ID为所述预存储的哈希表的表名,所述消息序号为所述预存储的哈希表的键、所述消息内容为所述预存储的哈希表的值;
所述保存模块807,还用于将所述群ID与所述消息序号保存到所述SSDB的第一有序列表中;
所述获取模块806,还用于获取预存储的第一有序列表;其中,所述预存储的第一有序列表的表名为所述群ID,所述预存储的第一有序列表的键和值分别为所述消息序号;
所述保存模块807,还用于将所述群ID、所述消息接收者ID与所述消息序号保存到所述SSDB的第二有序列表中;
所述获取模块806,还用于获取预存储的第二有序列表;其中,所述预存储的第二有序列表的表名为所述群ID加上所述消息接收者ID,所述预存储的第二有序列表的键和值分别为所述消息序号。
具体的,本发明实施例提供的群组历史消息的查询装置8的说明可以参考实施例一和实施例二的方法说明,本发明实施例在此不再赘述。
在实际应用中,所述接收模块801、解析模块802、查询模块803、发送模块804、生成模块805、获取模块806和保存模块807均可由位于群组历史消息的查询装置8中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable GateArray,FPGA)等实现。
本发明实施例提供了一种群组历史消息的查询装置,历史消息服务器将群消息按照不同的存储需求保存到相应的存储表中,在群组成员对历史消息进行查询时,根据历史消息查询请求中的参数信息分别为普通群成员与超级管理员提供相应的历史消息查询结果,使得每个普通群成员能够针对性查询群组历史消息,保证了历史消息的准确性,同时超级管理员可以查询任意时间段内的群组历史消息。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (14)
1.一种群组历史消息的查询方法,其特征在于,所述方法包括:
历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析所述查询群组历史消息的请求中的参数信息;其中,所述查询群组历史消息的请求中的参数信息指示所述客户端对应用户的身份信息与对群组历史消息的查询条件;
所述历史消息服务器在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容,并将所述历史消息内容返回客户端。
2.根据权利要求1所述的方法,其特征在于,当所述客户端为普通群成员客户端时,所述历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析所述查询群组历史消息的请求中的参数信息,包括:
所述历史消息服务器接收所述普通群成员客户端发送的查询群组历史消息的第一请求;
所述历史消息服务器解析出所述查询群组历史消息的第一请求中的参数包括:群标识ID、用户标识ID、消息的起始序号、消息结束序号、查询消息条数。
3.根据权利要求2所述的方法,其特征在于,所述历史消息服务器在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容,并将所述历史消息内容返回客户端,包括:
所述历史消息服务器根据所述第一请求中群ID与用户ID生成与快速非关系型数据库SSDB中预存储的第二有序列表相对应的表名;
所述历史消息服务器以所述第一请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第一查询条件,在所述预存储的第二有序列表中获取满足第一查询条件的第一消息序号列表;
所述历史消息服务器遍历所述第一消息序号列表,在预存储的哈希表中查询出与所述第一消息序号列表中每个消息序号相对应的消息内容并将所述消息内容返回至普通群成员客户端。
4.根据权利要求1所述的方法,其特征在于,当所述客户端为超级管理员客户端时,所述历史消息服务器接收客户端发送的查询群组历史消息的请求,并解析所述查询群组历史消息的请求中的参数信息,包括:
所述历史消息服务器接收超级管理员客户端发送的查询群组历史消息的第二请求;
所述历史消息服务器解析出查询群组历史消息的第二请求中的参数包括:群ID、消息的起始序号、消息结束序号、查询消息条数。
5.根据权利要求4所述的方法,其特征在于,所述历史消息服务器在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容,并将所述历史消息内容返回客户端,包括:
所述历史消息服务器根据所述第二请求中群ID生成与SSDB中预存储的第一有序列表相对应的表名;
所述历史消息服务器以所述第二请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第二查询条件,在所述预存储的第一有序列表中获取满足第二查询条件的第二消息序号列表;
所述历史消息服务器遍历所述第二消息序号列表,在预存储的哈希表中查询出与所述第二消息序号列表中每个消息序号相对应的消息内容并将所述消息内容返回至超级管理员客户端。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述历史消息服务器接收即时通信服务器发送的群消息存储请求,并解析所述群消息存储请求中的参数信息;其中,所述群消息存储请求中的参数信息包括:群ID、消息序号、消息接收者的标识ID和消息内容;
所述历史消息服务器按照群消息的存储需求分别将所述群消息存储请求中的参数信息保存到与所述存储需求相对应的群组历史消息存储结构中,获取预存储的群组历史消息存储结构。
7.根据权利要求6所述的方法,其特征在于,所述历史消息服务器按照群消息的存储需求分别将所述参数信息保存到与所述存储需求相对应的群组历史消息存储结构中,获取预存储的群组历史消息存储结构,包括:
所述历史消息服务器将所述群ID、所述消息序号与所述消息内容保存到SSDB的哈希表存储结构中,获取预存储的哈希表;其中,所述群ID为所述预存储的哈希表的表名,所述消息序号为所述预存储的哈希表的键、所述消息内容为所述预存储的哈希表的值;
所述历史消息服务器将所述群ID与所述消息序号保存到所述SSDB的第一有序列表中,获取预存储的第一有序列表;其中,所述预存储的第一有序列表的表名为所述群ID,所述预存储的第一有序列表的键和值分别为所述消息序号;
所述历史消息服务器将所述群ID、所述消息接收者ID与所述消息序号保存到所述SSDB的第二有序列表中,获取预存储的第二有序列表;其中,所述预存储的第二有序列表的表名为所述群ID加上所述消息接收者ID,所述预存储的第二有序列表的键和值分别为所述消息序号。
8.一种群组历史消息的查询装置,其特征在于,所述装置包括:接收模块,解析模块、查询模块和发送模块;其中,
所述接收模块,用于接收客户端发送的查询群组历史消息的请求;
所述解析模块,用于解析所述查询群组历史消息的请求中的参数信息;其中,所述查询群组历史消息的请求中的参数信息指示所述客户端对应用户的身份信息与对群组历史消息的查询条件;
所述查询模块,用于在与所述身份信息相对应的预存储的群组历史消息存储结构中按照所述对群组历史消息的查询条件查询对应的历史消息内容;
所述发送模块,用于将所述历史消息内容返回至所述客户端。
9.根据权利要求8所述的装置,其特征在于,
所述接收模块,用于接收所述普通群成员客户端发送的查询群组历史消息的第一请求;
所述解析模块,用于解析出所述查询群组历史消息的第一请求中的参数,所述第一请求中的参数包括:群ID、用户ID、消息的起始序号、消息结束序号、查询消息条数。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:生成模块和获取模块;其中,
所述生成模块,用于根据所述第一请求中群ID与用户ID生成与SSDB中预存储的所述第二有序列表相对应的表名;
所述获取模块,用于以所述第一请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第一查询条件,在所述预存储的第二有序列表中获取满足第一查询条件的第一消息序号列表;
所述查询模块,用于遍历所述第一消息序号列表,在预存储的哈希表中查询出与所述第一消息序号列表中每个消息序号相对应的消息内容;
所述发送模块,用于将所述消息内容返回至普通群成员客户端。
11.根据权利要求8所述的装置,其特征在于,
所述接收模块,用于接收普超级管理员客户端发送的查询群组历史消息的第二请求;
所述解析模块,用于解析出查询群组历史消息的第二请求中的参数,所述第二请求中的参数包括:群ID、消息的起始序号、消息结束序号、查询消息条数。
12.根据权利要求11所述的装置,其特征在于,
所述生成模块,用于根据所述第二请求中群ID生成与SSDB中预存储的所述第一有序列表相对应的表名;
所述获取模块,用于以所述第二请求中所述消息的起始序号、所述消息结束序号和所述查询消息条数为第二查询条件,在所述预存储的第一有序列表中获取满足第二查询条件的第二消息序号列表;
所述查询模块,用于遍历所述第二消息序号列表,在预存储的哈希表中查询出与所述第二消息序号列表中每个消息序号相对应的消息内容;
所述发送模块,用于将所述消息内容返回至超级管理员客户端。
13.根据权利要求8至12任一项所述的装置,其特征在于,所述装置还包括:保存模块;其中,
所述接收模块,用于接收即时通信服务器发送的群消息存储请求;
所述解析模块,用于解析所述群消息存储请求中的参数信息;其中,所述群消息存储请求中的参数信息包括:群ID、消息序号、消息接收者的ID和消息内容;
所述保存模块,用于按照群消息的存储需求分别将所述群消息存储请求中的参数信息保存到与所述存储需求相对应的群组历史消息存储结构中;
所述获取模块,用于获取预存储的群组历史消息存储结构。
14.根据权利要求13所述的装置,其特征在于,
所述保存模块,用于将所述群ID、所述消息序号与所述消息内容保存到SSDB的哈希表存储结构中;
所述获取模块,用于获取预存储的哈希表;其中,所述群ID为所述预存储的哈希表的表名,所述消息序号为所述预存储的哈希表的键、所述消息内容为所述预存储的哈希表的值;
所述保存模块,还用于将所述群ID与所述消息序号保存到所述SSDB的第一有序列表中;
所述获取模块,还用于获取预存储的第一有序列表;其中,所述预存储的第一有序列表的表名为所述群ID,所述预存储的第一有序列表的键和值分别为所述消息序号;
所述保存模块,还用于将所述群ID、所述消息接收者ID与所述消息序号保存到所述SSDB的第二有序列表中,获取预存储的第二有序列表;
所述获取模块,还用于获取预存储的第二有序列表;其中,所述预存储的第二有序列表的表名为所述群ID加上所述消息接收者ID,所述预存储的第二有序列表的键和值分别为所述消息序号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611187696.9A CN108206776B (zh) | 2016-12-20 | 2016-12-20 | 一种群组历史消息的查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611187696.9A CN108206776B (zh) | 2016-12-20 | 2016-12-20 | 一种群组历史消息的查询方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108206776A true CN108206776A (zh) | 2018-06-26 |
CN108206776B CN108206776B (zh) | 2021-02-05 |
Family
ID=62603696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611187696.9A Active CN108206776B (zh) | 2016-12-20 | 2016-12-20 | 一种群组历史消息的查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108206776B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818853A (zh) * | 2019-02-19 | 2019-05-28 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、服务器、电子设备及计算机可读存储介质 |
CN109918214A (zh) * | 2019-02-26 | 2019-06-21 | 深圳知云网络科技有限公司 | 一种群组消息服务端存储方法 |
CN112685537A (zh) * | 2020-12-28 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 会话记录查询方法、装置及相关设备 |
CN114513480A (zh) * | 2020-10-29 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 基于群聊的信息处理方法、装置、设备及计算机存储介质 |
CN114666175A (zh) * | 2022-03-09 | 2022-06-24 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469031A (zh) * | 2010-11-03 | 2012-05-23 | 杜惠红 | 局域网即时通讯群监管群成员的方法及系统 |
US20140279538A1 (en) * | 2013-03-14 | 2014-09-18 | Telcom Ventures, Llc | Systems, methods, and devices for verifying a user identity and/or enabling/disabling an action, using a current and/or previous user location |
CN104601441A (zh) * | 2014-12-04 | 2015-05-06 | 小米科技有限责任公司 | 针对群聊的权限控制方法和即时通信客户端 |
CN104796326A (zh) * | 2015-04-24 | 2015-07-22 | 广州多益网络科技有限公司 | 一种企业im的群组创建方法、数据加载方法及装置 |
CN105337747A (zh) * | 2015-11-17 | 2016-02-17 | 小米科技有限责任公司 | 群组历史消息处理方法和装置 |
CN105892810A (zh) * | 2016-03-30 | 2016-08-24 | 北京小米移动软件有限公司 | 消息显示方法及装置 |
-
2016
- 2016-12-20 CN CN201611187696.9A patent/CN108206776B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469031A (zh) * | 2010-11-03 | 2012-05-23 | 杜惠红 | 局域网即时通讯群监管群成员的方法及系统 |
US20140279538A1 (en) * | 2013-03-14 | 2014-09-18 | Telcom Ventures, Llc | Systems, methods, and devices for verifying a user identity and/or enabling/disabling an action, using a current and/or previous user location |
CN104601441A (zh) * | 2014-12-04 | 2015-05-06 | 小米科技有限责任公司 | 针对群聊的权限控制方法和即时通信客户端 |
CN104796326A (zh) * | 2015-04-24 | 2015-07-22 | 广州多益网络科技有限公司 | 一种企业im的群组创建方法、数据加载方法及装置 |
CN105337747A (zh) * | 2015-11-17 | 2016-02-17 | 小米科技有限责任公司 | 群组历史消息处理方法和装置 |
CN105892810A (zh) * | 2016-03-30 | 2016-08-24 | 北京小米移动软件有限公司 | 消息显示方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818853A (zh) * | 2019-02-19 | 2019-05-28 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、服务器、电子设备及计算机可读存储介质 |
CN109918214A (zh) * | 2019-02-26 | 2019-06-21 | 深圳知云网络科技有限公司 | 一种群组消息服务端存储方法 |
CN109918214B (zh) * | 2019-02-26 | 2022-11-18 | 维正科技服务有限公司 | 一种群组消息服务端存储方法 |
CN114513480A (zh) * | 2020-10-29 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 基于群聊的信息处理方法、装置、设备及计算机存储介质 |
CN114513480B (zh) * | 2020-10-29 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 基于群聊的信息处理方法、装置、设备及计算机存储介质 |
CN112685537A (zh) * | 2020-12-28 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 会话记录查询方法、装置及相关设备 |
CN114666175A (zh) * | 2022-03-09 | 2022-06-24 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN114666175B (zh) * | 2022-03-09 | 2024-01-02 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108206776B (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108206776A (zh) | 一种群组历史消息的查询方法和装置 | |
US11163898B2 (en) | Sharing artifacts in permission-protected archives | |
US7444596B1 (en) | Use of template messages to optimize a software messaging system | |
US20130124548A1 (en) | System and Method for Presenting A Plurality of Email Threads for Review | |
CN102999562B (zh) | 路由查询结果 | |
WO2014149466A1 (en) | Search query suggestions based on personal information | |
US20130246345A1 (en) | Systems and methods for online workflow implementation | |
US10185605B2 (en) | In-order message processing with message-dependency handling | |
US9342603B2 (en) | Experience graph | |
CN109213758B (zh) | 数据存取方法、装置、设备及计算机可读存储介质 | |
US11488113B1 (en) | Rendering related content prior to an event in a group-based communication interface | |
US20190320037A1 (en) | Content linking and aggregation | |
US20240020305A1 (en) | Systems and methods for automatic archiving, sorting, and/or indexing of secondary message content | |
CN109558444A (zh) | 数据检索方法及装置 | |
US20180173725A1 (en) | Image search based on message history | |
CN109947729A (zh) | 一种实时数据分析方法及装置 | |
US11343114B2 (en) | Group management in a messaging service | |
US11860870B2 (en) | High efficiency data querying | |
CN114491220A (zh) | 对象处理方法、装置、设备及介质 | |
CN108111598B (zh) | 云盘数据的下发方法、装置及存储介质 | |
EP2610788A1 (en) | Seamless travel hive engine and method of same | |
US20150332416A1 (en) | Interactions in social networking services | |
US20130054277A1 (en) | Method and system for planning and booking trips | |
US20150039759A1 (en) | Apparatus, method, and non-transitory computer readable storage medium thereof for controlling access of a resource | |
US11106739B2 (en) | Document structures for searching within and across messages |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310012 building A01, 1600 yuhangtang Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Applicant after: CHINA MOBILE (HANGZHOU) INFORMATION TECHNOLOGY Co.,Ltd. Applicant after: China Mobile Communications Corp. Address before: 310012, No. 14, building three, Chang Torch Hotel, No. 259, Wensanlu Road, Xihu District, Zhejiang, Hangzhou Applicant before: CHINA MOBILE (HANGZHOU) INFORMATION TECHNOLOGY Co.,Ltd. Applicant before: China Mobile Communications Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |