一种消息记录合并方法及客户端的制作方法

文档序号:6557627阅读:178来源:国知局
专利名称:一种消息记录合并方法及客户端的制作方法
技术领域
本发明涉及即时通信技术,尤其涉及一种消息记录合并方法及客户端。
背景技术
网络即时通信系统发展到今天,已经被大多数的网民所接受,成为用户必不可少的通信工具,不但在平时的休闲娱乐中,而且在用户的工作中得到广泛的使用。因此用户对即时通信系统的易用性,稳定性,安全性等方面提出了较高的要求。
用户长期使用即时通信系统会积累了大量的历史消息记录,为满足用户后续的查看以及回顾整理的需要,消息记录成为即时通信系统中不可缺少的功能。当前主流的即时通信系统的客户端(如腾讯公司的QQ、TM,微软公司的MSN等)都具有记录即时消息的功能,用户通过即时通信客户端的消息记录入口即可有效的查看到对应某个联系人的消息记录。当即时通信客户端捕获到用户通过右键菜单或者按钮点击查看某个联系人的消息记录的操作时,利用消息管理模块以及Windows窗口相关的API函数打开消息管理器,通过用户希望查看的联系人标识从本地存储模块中查询对应该联系人标识的消息记录内容,利用Windows的列表控件进行消息记录的装载,这样用户就可以通过消息管理器查看与某个联系人的消息记录,从而获取到希望得到的信息。
目前即时通信系统中用户与联系人之间的消息记录通常以文件形式保存在客户端本地,例如用户在公司的PC机器上能查看在这台机器上与联系人之间的消息记录,而到了家里的PC机上则无法查看在公司的PC机器上发生的消息记录。某些即时通信系统(如腾讯QQ、TM)提供了消息记录的上传及下载功能,客户端可将用户与指定联系人的消息记录上传到服务器端进行备份,并可对在服务器端保存的消息记录进行下载查看。这种消息记录的上传和下载是通过客户端与服务器之间的文件传输通道完成的。目前在即时通信系统中,从服务器中下载的用户与指定联系人之间的消息记录无法与客户端本地保存的该用户与指定联系人之间的消息记录进行合并,在这种情况下,当用户需要查找某条消息时,需要分别查看服务器端及客户端的消息记录,而用户通常希望查看一个整体的消息记录,而不是两个独立的消息记录。
并且目前的即时通信系统不支持消息记录的自动上传及下载,消息记录的上传及下载必须在用户的手动触发下完成。在这种情况下,若用户曾经忘记将某些重要的消息记录上传给服务器,并且用户当前登录的客户端本地不存在该消息记录,则用户将无法查看到该消息记录,从而给用户造成了极大的不便。

发明内容
本发明提供一种消息记录合并方法及客户端,用以解决现有技术中从服务器下载的消息记录无法同本地保存的相应消息记录进行合并的问题。
本发明技术方案包括一种消息记录合并方法,包括步骤A、客户端从服务器下载当前登录用户与指定联系人的消息记录;B、客户端将所述下载的消息记录合并到本地保存的当前登录用户与指定联系人的消息记录中,并利用合并后的消息记录更新服务器中对应保存的消息记录。
所述步骤B后还包括步骤客户端按预设时间间隔检测本地是否存在当前登录用户与指定联系人之间的新增消息记录,若存在,则向服务器上传该新增消息记录。
所述步骤B后还包括步骤客户端实时检测本地保存的当前登录用户与指定联系人之间的新增消息记录量,当该新增消息记录量到达预设门限值时,将新增消息记录上传到服务器。
所述步骤A具体包括客户端响应当前登录用户打开与指定联系人之间的消息窗口的操作,将当前登录用户标识、指定联系人标识及本地保存的当前登录用户与指定联系人的最后消息发生时间发送给服务器;若服务器保存的当前登录用户与指定联系人的最后消息发生时间与客户端上传的最后消息发生时间不同,则触发客户端从服务器下载当前登录用户与指定联系人的消息记录。
所述步骤A具体包括客户端响应当前登录用户打开与指定联系人之间的消息窗口的操作,从服务器获取当前登录用户与指定联系人的最后消息发生时间;若客户端保存的当前登录用户与指定联系人的最后消息发生时间与从服务器端获取的最后消息发生时间不同,则从服务器下载当前登录用户与指定联系人的消息记录。
所述消息记录合并的具体过程为在客户端侧的内存中建立消息记录数组结构,将所述下载的消息记录及本地保存的当前登录用户与指定联系人的消息记录插入该消息记录数组结构中;按照消息记录中每条消息的发生时间对消息记录进行排序,利用排序后的消息记录更新本地保存的当前登录用户与指定联系人之间的消息记录。
所述客户端利用合并后的消息记录更新服务器中对应保存的消息记录的具体过程为客户端将当前登录用户标识、指定联系人标识及合并后的消息记录上传给服务器;服务器利用所述合并后的消息记录更新自身保存的当前登录用户标识与指定联系人标识之间的消息记录。
一种客户端,包括
消息记录存储单元,用于存储本地发生的用户与联系人之间的消息记录;消息记录上传单元,用于从消息存储单元中获取当前登录用户与指定联系人的消息记录,将其上传给服务器;消息记录下载单元,用于从服务器中下载当前登录用户与指定联系人的消息记录;还包括消息记录合并单元,用于将从服务器中下载的消息记录合并到所述消息记录存储单元的当前登录用户与指定联系人的消息记录中。
还包括检测单元,按预设时间间隔检测本地的当前登录用户与指定联系人之间的新增消息记录,在检测到新增消息记录时,或者在检测到本地的当前登录用户与指定联系人之间的新增消息记录量到达预设门限值时,通过消息记录上传单元向服务器上传新增消息记录。
还包括比较单元,用于比较服务器保存的当前登录用户与指定联系人的最后消息发生时间与客户端本地保存的相应的最后消息发生时间是否相同,若不同,触发消息记录下载单元从服务器下载当前登录用户与指定联系人的消息记录。
本发明有益效果如下本发明中客户端通过从服务器侧下载当前登录用户与指定联系人之间的消息记录,并将下载的消息记录与本地保存的相应消息记录合并为一个完整的消息记录,为用户提供了一种完整有序的消息记录管理方式,使用户可方便的进行消息记录的回顾与查看。
更进一步,本发明中客户端可自动将当前登录用户与指定联系人的消息记录增量上传给服务器,服务器端能够完整保存该用户与指定联系人之间的消息记录,从而使得该用户在任何地方以及任何时间登录客户端都可以从服务器中获取所有与该指定联系人之间的消息记录,为用户提供一种方便的查看完整消息记录的实现方式,增强了用户的使用体验。


图1为本发明的消息记录合并方法的流程图;图2为本发明所述方法的一种较佳实施例的流程图;图3为本发明所述客户端的一种较佳实施例的结构框图。
具体实施例方式
下面通过具体实施例和附图对本发明做进一步详细说明。
请参阅图1,该图为本发明的消息记录合并方法的流程图,本发明的核心技术方案包括步骤步骤S10、客户端从服务器下载当前登录用户与指定联系人的消息记录;步骤S11、客户端将所述下载的消息记录合并到本地保存的当前登录用户与指定联系人的消息记录中;步骤S12、客户端利用合并后的消息记录更新服务器中对应保存的消息记录。
本发明适用于具有服务器及至少一个客户端的即时通信系统,以下实施例以基于视窗(Windows)计算机操作系统的即时通信系统为例说明本发明的技术方案。
请参阅图2,该图为本发明所述方法的一种较佳实施例的流程图,该流程包括步骤步骤S20、用户登录客户端并打开对应指定联系人的消息窗口,客户端响应当前登录用户打开对应指定联系人的消息窗口的操作,根据当前登录用户标识及指定联系人标识在本地消息记录存储单元中查找该登录用户与指定联系人之间的消息记录,获取其中最后一条即时消息的发生时间。
步骤S21、判断客户端保存的当前登录用户与指定联系人的最后消息发生时间与服务器端相应保存的最后消息发生时间是否相同。
本实施例中可采用两种方式判断客户端保存的当前登录用户与指定联系人的最后消息发生时间与服务器端相应保存的最后消息发生时间是否相同,下面分别予以说明第一种方式为客户端将当前登录用户标识、指定联系人标识及获取到的当前登录用户与指定联系人的最后消息发生时间组合到数据包中,对组合的数据包按照与服务器约定的协议格式进行组包,并对数据包进行加密处理,利用与服务器约定的UDP(用户数据报协议)套接字端口(本文简称套接字端口)发送该数据包到服务器中。
服务器利用约定的套接字端口异步等待接收客户端发送的数据包,对数据包进行解密及解析处理,在确定是有效的数据包后,从中提取出当前登录用户标识、指定联系人标识及客户端的当前登录用户与指定联系人的最后消息发生时间,服务器利用当前登录用户标识及指定联系人标识查询服务器中保存的当前登录用户与指定联系人的消息记录,提取出其中的最后一条即时消息的发生时间,比较该时间与客户端上传的最后消息发生时间是否相同,若相同,则服务器向客户端返回无需更新消息记录的协议数据包,流程结束。否则,说明客户端与服务器保存的当前登录用户与指定联系人之间的消息记录存在差异,执行步骤S22。
第二种方式为客户端将当前登录用户标识、指定联系人标识及获取最后消息发生时间的消息组合到数据包中,对组合的数据包按照与服务器约定的协议格式进行组包,并对数据包进行加密处理,利用与服务器约定的套接字端口发送该数据包到服务器中。
服务器利用约定的套接字端口异步等待接收客户端发送的数据包,对数据包进行解密及解析处理,在确定是有效的数据包后,从中提取出当前登录用户标识、指定联系人标识及获取最后消息发生时间的消息,服务器利用当前登录用户标识及指定联系人标识查询服务器中保存的当前登录用户与指定联系人的消息记录,提取出其中的最后一条即时消息的发生时间,向客户端返回携带有所述提取出的最后消息发生时间的数据包。
客户端比较服务器返回的最后消息发生时间与步骤S20中获取到的最后消息发生时间是否相同,若相同,流程结束,否则,说明客户端与服务器保存的当前登录用户与指定联系人之间的消息记录存在差异,执行步骤S22。
步骤S22、服务器将自身保存的当前登录用户与指定联系人的消息记录组合到数据包中,对数据包进行加密处理,根据当前登录用户标识查询登录服务器获取该登录用户所在客户端的IP地址及端口,生成套接字端口将加密后的数据包发送给客户端。
步骤S23、在客户端侧的内存中建立消息记录数组结构,客户端根据在本地的消息记录存储单元中查询当前登录用户与指定联系之间的消息记录,将该消息记录插入内存中建立的消息记录数组结构中;同时,客户端将在上述步骤S22中获取到的消息记录插入内存中建立的消息记录数组结构中。
步骤S24、客户端解析出消息记录数组结构中的每条消息对应的发生时间字段,利用每条消息对应的发生时间字段作为排序的标准,对消息记录数组结构中的消息记录进行排序,利用排序后的消息记录更新客户端本地保存的当前登录用户与指定联系人之间的消息记录。
步骤S25、客户端将当前登录用户标识、指定联系人标识及合并后的消息记录组合到数据包中,对数据包进行加密处理后,利用与服务器约定的套接字端口将数据包上传到服务器。
步骤S26、服务器利用约定的套接字端口异步等待接收客户端发送的数据包,对数据包进行解密及解析处理,在确定是有效的数据包后,从中提取出当前登录用户标识、指定联系人标识及合并后的消息记录,利用该合并后的消息记录对自身保存的当前登录用户标识与指定联系人标识之间的消息记录进行更新。
为了能够将当前登录用户与指定联系人之间的后续消息记录增量及时上传到服务器,本发明还包括下述步骤步骤S27、客户端按预设时间间隔检测本地的当前登录用户与指定联系人之间的新增消息记录,在检测到新增消息记录时,或者在检测到本地的当前登录用户与指定联系人之间的新增消息记录量到达预设门限值时,向服务器上传新增消息记录。
相应地,本发明还提供了一种即时通信客户端,请参阅图3,该图为本发明所述客户端的一种较佳实施例的结构框图,具体包括消息记录存储单元30,用于存储本地发生的用户与联系人之间的消息记录;消息记录上传单元31,连接所述消息记录存储单元30,用于从消息存储单元30中获取当前登录用户与指定联系人的消息记录,将其上传给服务器;消息记录下载单元32,用于从服务器中下载当前登录用户与指定联系人的消息记录;消息记录合并单元33,连接所述消息记录下载单元32,用于将从服务器中下载的消息记录合并到所述消息记录存储单元30的当前登录用户与指定联系人的消息记录中;检测单元34,按预设时间间隔检测消息记录存储单元30中的当前登录用户与指定联系人之间的新增消息记录,在检测到新增消息记录时,或者在检测到本地的当前登录用户与指定联系人之间的新增消息记录量到达预设门限值时,触发消息记录上传单元31向服务器上传新增消息记录;比较单元35,用于比较服务器保存的当前登录用户与指定联系人的最后消息发生时间与客户端本地保存的相应的最后消息发生时间是否相同,若不同,触发消息记录下载单元从服务器下载当前登录用户与指定联系人的消息记录。
综上所述可知,本发明中客户端通过从服务器侧下载当前登录用户与指定联系人之间的消息记录,并将下载的消息记录与本地保存的相应消息记录合并为一个完整的消息记录,为用户提供了一种完整有序的消息记录管理方式,使用户可方便的进行消息记录的回顾与查看。
更进一步,本发明中客户端可自动将当前登录用户与指定联系人的消息记录增量上传给服务器,服务器端能够完整保存该用户与指定联系人之间的消息记录,从而使得该用户在任何地方以及任何时间登录客户端都可以从服务器中获取所有与该指定联系人之间的消息记录,为用户提供一种方便的查看完整消息记录的实现方式,增强了用户的使用体验。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种消息记录合并方法,其特征在于,包括步骤A、客户端从服务器下载当前登录用户与指定联系人的消息记录;B、客户端将所述下载的消息记录合并到本地保存的当前登录用户与指定联系人的消息记录中,并利用合并后的消息记录更新服务器中对应保存的消息记录。
2.如权利要求1所述的方法,其特征在于,所述步骤B后还包括步骤客户端按预设时间间隔检测本地是否存在当前登录用户与指定联系人之间的新增消息记录,若存在,则向服务器上传该新增消息记录。
3.如权利要求1所述的方法,其特征在于,所述步骤B后还包括步骤客户端实时检测本地保存的当前登录用户与指定联系人之间的新增消息记录量,当该新增消息记录量到达预设门限值时,将新增消息记录上传到服务器。
4.如权利要求1至3中任意一项所述的方法,其特征在于,所述步骤A具体包括客户端响应当前登录用户打开与指定联系人之间的消息窗口的操作,将当前登录用户标识、指定联系人标识及本地保存的当前登录用户与指定联系人的最后消息发生时间发送给服务器;若服务器保存的当前登录用户与指定联系人的最后消息发生时间与客户端上传的最后消息发生时间不同,则触发客户端从服务器下载当前登录用户与指定联系人的消息记录。
5.如权利要求1至3中任意一项所述的方法,其特征在于,所述步骤A具体包括客户端响应当前登录用户打开与指定联系人之间的消息窗口的操作,从服务器获取当前登录用户与指定联系人的最后消息发生时间;若客户端保存的当前登录用户与指定联系人的最后消息发生时间与从服务器端获取的最后消息发生时间不同,则从服务器下载当前登录用户与指定联系人的消息记录。
6.如权利要求1所述的方法,其特征在于,所述消息记录合并的具体过程为在客户端侧的内存中建立消息记录数组结构,将所述下载的消息记录及本地保存的当前登录用户与指定联系人的消息记录插入该消息记录数组结构中;按照消息记录中每条消息的发生时间对消息记录进行排序,利用排序后的消息记录更新本地保存的当前登录用户与指定联系人之间的消息记录。
7.如权利要求1所述的方法,其特征在于,所述客户端利用合并后的消息记录更新服务器中对应保存的消息记录的具体过程为客户端将当前登录用户标识、指定联系人标识及合并后的消息记录上传给服务器;服务器利用所述合并后的消息记录更新自身保存的当前登录用户标识与指定联系人标识之间的消息记录。
8.一种客户端,包括消息记录存储单元,用于存储本地发生的用户与联系人之间的消息记录;消息记录上传单元,用于从消息存储单元中获取当前登录用户与指定联系人的消息记录,将其上传给服务器;消息记录下载单元,用于从服务器中下载当前登录用户与指定联系人的消息记录;其特征在于,还包括消息记录合并单元,用于将从服务器中下载的消息记录合并到所述消息记录存储单元的当前登录用户与指定联系人的消息记录中。
9.如权利要求8所述的客户端,其特征在于,还包括检测单元,按预设时间间隔检测本地的当前登录用户与指定联系人之间的新增消息记录,在检测到新增消息记录时,或者在检测到本地的当前登录用户与指定联系人之间的新增消息记录量到达预设门限值时,通过消息记录上传单元向服务器上传新增消息记录。
10.如权利要求8或9所述的方法,其特征在于,还包括比较单元,用于比较服务器保存的当前登录用户与指定联系人的最后消息发生时间与客户端本地保存的相应的最后消息发生时间是否相同,若不同,触发消息记录下载单元从服务器下载当前登录用户与指定联系人的消息记录。
全文摘要
本发明公开了一种消息记录合并方法及客户端,用以解决现有技术中从服务器下载的消息记录无法同本地保存的相应消息记录进行合并的问题。本发明中客户端从服务器下载当前登录用户与指定联系人的消息记录,将所述下载的消息记录合并到本地保存的当前登录用户与指定联系人的消息记录中,并利用合并后的消息记录更新服务器中对应保存的消息记录,从而实现了服务器端消息记录与客户端相应消息记录的合并,为用户提供了一种完整有序的消息记录管理方式,使用户可方便的进行消息记录的回顾与查看。
文档编号G06F17/30GK101047520SQ20061006619
公开日2007年10月3日 申请日期2006年3月28日 优先权日2006年3月28日
发明者李斌 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1