CN106506674A - 通信消息同步方法及装置 - Google Patents
通信消息同步方法及装置 Download PDFInfo
- Publication number
- CN106506674A CN106506674A CN201611056492.1A CN201611056492A CN106506674A CN 106506674 A CN106506674 A CN 106506674A CN 201611056492 A CN201611056492 A CN 201611056492A CN 106506674 A CN106506674 A CN 106506674A
- Authority
- CN
- China
- Prior art keywords
- message
- communication information
- data
- social networking
- networking application
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种通信消息同步方法及装置,属于互联网技术领域。所述方法包括:获取第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型;对于每条通信消息,生成包括通信消息的消息类型以及通信消息的消息内容的消息数据;以消息块为单位同步生成的n条消息数据至第二社交应用客户端;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,至少两条消息数据所对应的通信消息属于同一会话,第二社交应用客户端与第一社交应用客户端类型相同且共用同一社交帐号;解决了现有技术中在同步通信消息至其他平台之后,其他平台中的社交应用客户端可能无法识别该通信消息的问题。
Description
技术领域
本发明实施例涉及互联网技术领域,特别涉及一种通信消息同步方法及装置。
背景技术
现有技术中,用户可以在不同社交应用客户端中登录自己的社交帐号,比如,用户可以在手机的社交应用客户端中登录自己的社交帐号,也可以在电脑的社交应用客户端中登录自己的社交帐号。
实际实现时,当用户需要在第二社交应用客户端中查看第一社交应用客户端中的通信消息时,第一社交应用客户端可以获取存储的待同步的通信消息,将获取到的通信消息同步至第二社交应用客户端。这样,用户即可在第二社交应用客户端中查看接收到的通信消息。
然而,当第一社交应用客户端和第二社交应用客户端是运行在不同平台中的客户端,比如,第一社交应用客户端运行在Android***的手机中,而第二社交应用客户端运行在Windows***的电脑中时,由于不同平台对数据的封装格式不同,因此在第一社交应用客户端同步通信消息至第二社交应用客户端之后,第二社交应用客户端可能并不能解析该通信消息。
发明内容
为了解决现有技术中存在的问题,本发明实施例提供了一种通信消息同步方法及装置。技术方案如下:
根据本发明实施例的第一方面,提供一种通信消息同步方法,用于第一社交应用客户端中,该方法包括:
获取所述第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数;
对于每条通信消息,生成包括所述通信消息的消息类型以及所述通信消息的消息内容的消息数据;
以消息块为单位同步生成的n条消息数据至第二社交应用客户端;第二社交应用客户端以消息块为单位存储n条消息数据至数据文件,生成并保存对应关系;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,至少两条消息数据所对应的通信消息属于同一会话,第二社交应用客户端与第一社交应用客户端类型相同且共用同一社交帐号;对应关系包括消息块、消息块所对应的会话以及消息块的存储位置之间的对应关系,消息块所对应的会话为消息块中的消息数据所对应的通信消息所属的会话。
根据本发明实施例的第二方面,提供一种通信消息同步方法,用于第二社交应用客户端中,该方法包括:
接收第一社交应用客户端以消息块为单位同步的n条消息数据;所述第一社交应用客户端与所述第二社交应用客户端类型相同且共用同一社交帐号;每条消息数据为所述第一社交应用客户端生成的包括一条通信消息的消息类型以及消息内容的数据;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,所述至少两条消息数据所对应的通信消息属于同一会话;
以所述消息块为单位存储所述n条消息数据至数据文件;
生成并保存对应关系;所述对应关系包括消息块、所述消息块所对应的会话以及所述消息块的存储位置之间的对应关系,所述消息块所对应的会话为所述消息块中的消息数据所对应的通信消息所属的会话。
根据本发明实施例的第三方面,提供一种通信消息同步装置,用于第一社交应用客户端中,该装置包括:
第一获取模块,用于获取所述第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数;
生成模块,用于对于每条通信消息,生成包括所述通信消息的消息类型以及所述通信消息的消息内容的消息数据;
同步模块,用于以消息块为单位同步生成的n条消息数据至第二社交应用客户端;第二社交应用客户端以消息块为单位存储n条消息数据至数据文件,生成并保存对应关系;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,至少两条消息数据所对应的通信消息属于同一会话,第二社交应用客户端与第一社交应用客户端类型相同且共用同一社交帐号;对应关系包括消息块、消息块所对应的会话以及消息块的存储位置之间的对应关系,消息块所对应的会话为消息块中的消息数据所对应的通信消息所属的会话。
根据本发明实施例的第四方面,提供一种通信消息同步装置,用于第二社交应用客户端中,该装置包括:
第一接收模块,用于接收第一社交应用客户端以消息块为单位同步的n条消息数据;所述第一社交应用客户端与所述第二社交应用客户端类型相同且共用同一社交帐号;每条消息数据为所述第一社交应用客户端生成的包括一条通信消息的消息类型以及消息内容的数据;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,所述至少两条消息数据所对应的通信消息属于同一会话;
存储模块,用于以所述消息块为单位存储所述n条消息数据至数据文件;
生成模块,用于生成并保存对应关系;所述对应关系包括消息块、所述消息块所对应的会话以及所述消息块的存储位置之间的对应关系,所述消息块所对应的会话为所述消息块中的消息数据所对应的通信消息所属的会话。
本发明实施例提供的技术方案带来的有益效果是:
通过在获取到待同步的n条通信消息以及每条通信消息的消息类型之后,对于每条通信消息,生成包括消息类型以及消息内容的消息数据,并以消息块为单位同步生成的n条消息数据至第二社交应用客户端,这样,由于每条消息数据中包括消息类型和消息内容,所以第二社交应用客户端可以根据接收到的消息数据解析出对应的通信消息;解决了现有技术中在同步通信消息至其他平台之后,其他平台中的社交应用客户端可能无法识别该通信消息的问题;达到了可以实现跨平台的通信消息同步的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明各个实施例所涉及的实施环境的示意图;
图2是本发明一个实施例提供的通信消息同步方法的流程图;
图3A是本发明一个实施例提供的通信消息同步方法的流程图;
图3B是本发明一个实施例提供的生成的消息数据的示意图;
图3C是本发明一个实施例提供的生成的消息块的示意图;
图3D是本发明一个实施例提供的数据文件的示意图;
图3E是本发明一个实施例提供的数据文件和索引文件的示意图;
图4A是本发明另一个实施例提供的通信消息同步方法的流程图;
图4B是本发明另一个实施例提供的生成的消息数据的示意图;
图5是本发明一个实施例提供的通信消息同步装置的示意图;
图6是本发明一个实施例提供的通信消息同步装置的示意图;
图7是本发明一个实施例提供的终端的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明各个实施例提供的通信消息同步方法所涉及的实施环境的示意图,如图1所示,该实施环境可以包括第一社交应用客户端110、服务器120和第二社交应用客户端130。
第一社交应用客户端110和第二社交应用客户端130为同种类型的客户端。比如,同时为即时通信客户端或者同时为邮箱等等。在下述各个实施例中,第一社交应用客户端110和第二社交应用客户端130共用同一社交帐号。
实际实现时,第一社交应用客户端110安装在第一终端中,第二社交应用客户端130安装在第二终端中,第一终端和第二终端可以为诸如手机、平板电脑、电子阅读器、台式电脑或者笔记本电脑之类的终端,第一终端和第二终端的不同之处在于,两者使用的操作***不同。比如,第一终端使用的操作***可以为iOS,第二终端使用的操作***可以为Windows;又比如,第一终端使用的操作***为Android(安卓),第二终端使用的操作***可以为iOS,本实施例对此并不做限定。
实际实现时,第一终端和第二终端均可以通过有线或者无线网络与服务器120连接。并且,第一终端还可以通过蓝牙、局域网、USB(Universal Serial Bus,通用串行总线)或者NFC(Near Field Communication,近距离无线通信技术)与第二终端连接。
服务器120可以为社交应用客户端所对应的后台服务器,该服务器120可以为一台服务器,也可以为由多台服务器组成的服务器集群。
在下述各个实施例中,除特殊说明外,第一社交应用客户端110为需要同步通信消息的客户端,第二社交应用客户端130为接收同步的客户端。具体的,第一社交应用客户端110可以主动同步通信消息至第二社交应用客户端130,或者,在接收到第二社交应用客户端130发送的同步请求之后同步通信消息至第二社交应用客户端130,比如,用户在登录第二社交应用客户端130之后,第二社交应用客户端130可以发送同步请求至服务器120,服务器转发该同步请求至第一社交应用客户端110,第一社交应用客户端110接收到同步请求之后同步通信消息至第二社交应用客户端130。
实际实现时,第一社交应用客户端110在同步通信消息至第二社交应用客户端120时,第一社交应用客户端110可以先同步通信消息至服务器120,由服务器120转发通信消息至第二社交应用客户端130。
可选地,作为另一种实现方式,第一社交应用客户端110所处的第一终端还可以先建立与第二社交应用客户端130所处的第二终端之间的直连,然后直接同步通信消息至第二社交应用客户端130。以第一终端和第二终端通过局域网连接为例,第二社交应用客户端130在登录之后,第二社交应用客户端130可以上报第二终端的IP(Internet Protocol,网络之间互联的协议)地址以及端口至服务器120,服务器120转发该IP地址和端口至第二社交应用客户端130,第二终端根据第二社交应用客户端130接收到的IP地址和端口建立与第一终端之间的局域网连接。
请参考图2,其示出了本发明一个实施例提供的通信消息同步方法的方法流程图,本实施例以该方法用于图1所示的应用场景中来举例说明,如图2所示,该通信消息同步方法可以包括:
步骤201,第一社交应用客户端获取第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数。
用户使用第一社交应用客户端与好友通信时,第一社交应用客户端可以保存通信消息至本地数据库。其中,通信消息包括好友社交应用客户端发送至第一社交应用客户端的消息,以及第一社交应用客户端发送至好友社交应用客户端的消息。
当需要同步通信消息至第二社交应用客户端时,第一社交应用客户端可以从本地数据库中获取待同步的n条通信消息以及每条通信消息的消息类型。其中,第二社交应用客户端和第一社交应用客户端同种类型且共用同一社交帐号,消息类型为文本、图片、音频或者视频。
可选地,本步骤可以包括如下可能的实现方式:
第一种,第一社交应用客户端在预定时刻获取与上一个同步时刻之间新增的通信消息,将获取到的通信消息作为待同步的n条通信消息。
实际实现时,第一社交应用客户端可以定时同步,比如,在每天24:00,或者每周日24:00执行同步。对于此种情况,第一社交应用客户端可以获取当前时刻与上一个同步时刻之间新增的通信消息。
比如,以每天24:00同步为例,第一社交应用客户端可以获取从前一天24:00至当天24:00时新增的通信消息,将获取到的通信消息作为n条通信消息。
第二种,第一社交应用客户端接收同步信号,该同步信号请求同步目标会话在预设时间段内新增的通信消息;获取目标会话在预设时间段内新增的通信消息。
用户使用第一社交应用客户端的过程中,用户可以主动请求同步某一会话在某一时间段内的通信消息至第二社交应用客户端,也即用户可以在第一社交应用客户端中施加同步信号,相应的,第一社交应用客户端可以接收到该同步信号,并在接收到同步信号之后,获取指定会话在指定时间段内的通信消息。
比如,在10:00~12:00期间用户使用手机中的第一社交应用客户端向自己的老师咨询了一些问题,则为了能够在电脑的第二社交应用客户端中查看该咨询记录,用户可以施加将与老师的会话中在10:00~12:00期间的通信消息同步至第二社交应用客户端。
步骤202,对于每条通信消息,第一社交应用客户端生成包括通信消息的消息类型以及通信消息的消息内容的消息数据。
第一社交应用客户端在获取到n条通信消息之后,提取每条通信消息中在各个平台中均有用的字段,也即提取出每条通信消息的消息内容,生成包括消息内容和消息类型的消息数据。
步骤203,第一社交应用客户端以消息块为单位同步生成的n条消息数据至第二社交应用客户端。
每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,至少两条消息数据所对应的通信消息属于同一会话。
可选地,作为一种可能的实现方式,第一社交应用客户端以消息块为单位同步生成的n条消息数据至服务器,服务器以消息块为单位转发该n条消息数据至第二社交应用客户端。
作为另一种可能的实现方式,第一社交应用客户端所处的第一终端和第二社交应用客户端所处的第二终端可以建立直连,第一社交应用客户端直接以消息块为单位同步该n条消息数据至该第二社交应用客户端。其中,第一终端可以通过蓝牙、NFC、USB、局域网等方式与第二终端建立连接,本实施例对此并不做限定。
另外,在同步消息数据至第二社交应用客户端的过程中,若第二社交应用客户端不在线,则同步失败并生成提示信息,对此并不做限定。
步骤204,第二社交应用客户端接收第一社交应用客户端以消息块为单位同步的n条消息数据。
步骤205,第二社交应用客户端以消息块为单位存储n条消息数据至数据文件。
步骤206,第二社交应用客户端确定每个消息块在数据文件中的存储位置。
步骤207,第二社交应用客户端生成并保存对应关系。
对应关系包括消息块、消息块所对应的会话以及消息块的存储位置之间的对应关系,消息块所对应的会话为消息块中的消息数据所对应的通信消息所属的会话。
综上所述,本实施例提供的通信消息同步方法,通过在获取到待同步的n条通信消息以及每条通信消息的消息类型之后,对于每条通信消息,生成包括消息类型以及消息内容的消息数据,并以消息块为单位同步生成的n条消息数据至第二社交应用客户端,这样,由于每条消息数据中包括消息类型和消息内容,所以第二社交应用客户端可以根据接收到的消息数据解析出对应的通信消息;解决了现有技术中在同步通信消息至其他平台之后,其他平台中的社交应用客户端可能无法识别该通信消息的问题;达到了可以实现跨平台的通信消息同步的效果。
在上述实施例中,步骤202可以包括如下两种可能的实现方式:
第一种,若消息类型为文本,则生成包括消息类型和消息内容的消息数据;若消息类型为图片或者音视频,生成包括消息类型以及数据标识的消息体,并生成包括消息内容的媒体数据,数据标识用于指向媒体数据,消息体和媒体数据构成消息数据。
第二种,生成包括消息类型以及消息内容的消息数据。
因此,下述将在不同实施例中分别对上述两种情况做说明。
请参考图3A,其示出了本发明一个实施例提供的通信消息同步方法的方法流程图,本实施例以该方法用于图1所示的应用场景且以通过上述第一种生成方式生成消息数据来举例说明,如图3A所示,该通信消息同步方法可以包括:
步骤301,第一社交应用客户端获取第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数。
本步骤与步骤201类似,在此不再赘述。
步骤302,对于每条通信消息,若消息类型为文本,则第一社交应用客户端生成包括消息类型和消息内容的消息数据;若消息类型为图片或者音视频,则第一社交应用客户端生成包括消息类型以及数据标识的消息体,并生成包括消息内容的媒体数据,数据标识用于指向媒体数据,消息体和媒体数据构成消息数据。
其中,数据标识唯一指向媒体数据。
第一社交应用客户端在获取到n条通信消息之后,提取每条通信消息中在各个平台中均有用的字段,也即提取出每条通信消息的消息内容,根据消息内容和消息类型生成消息数据。
比如,n条通信消息中包括与小明聊天的4条聊天消息、与小花聊天的18条聊天消息以及与小刚聊天的5条聊天消息,则以与小明聊天的4条聊天消息为例,请参考图3B,对于每条聊天消息,第一社交应用客户端生成图中所示的消息数据。
需要说明的是,上述实施例只是以消息数据中包括上述内容来举例,可选地,消息数据中还可以包括其他内容,本实施例对此并不做限定。
步骤303,n条通信消息来自m个会话,对于每个会话,第一社交应用客户端生成消息块。
可选地,第一社交应用客户端可以根据会话中的各条通信消息所对应的消息数据的总大小,和/或,会话中的通信消息的条数,为会话生成至少一个消息块。
其中,第一社交应用客户端根据会话中的各条通信消息所对应的消息数据的总大小为会话生成至少一个消息块可以包括:第一社交应用客户端根据各条消息数据中的媒体数据的总大小生成至少一个消息块。比如,消息块所对应的各条媒体数据的总大小的最大值为80M,会话中的各条通信消息所对应的消息数据中的媒体数据的总大小为200M,则第一社交应用客户端可以为该会话生成3个消息块。
以第一社交应用客户端根据会话中的通信消息的条数生成消息块来举例,假设每个消息块最多能存储的通信消息的条数为10条,某一会话中的通信消息有35条,则第一社交应用客户端可以为该会话生成4个消息块。
步骤304,对于任一会话中的任一通信消息i,如果通信消息i的消息数据包括消息体和媒体数据,则第一社交应用客户端将通信消息i的消息体按预设顺序存储至通信消息i所属会话对应的消息块中。
其中,预设顺序为接收到会话中的各条通信消息的先后顺序。每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,至少两条消息数据所对应的通信消息属于同一会话。
可选地,若通信消息i的消息数据包括消息类型和消息内容,则第一社交应用客户端将该消息数据按预设顺序存储至通信消息i所属会话对应的消息块中。
比如,以存储与小明的4条聊天消息所对应的消息数据为例,第一社交应用客户端可以得到图3C所示的消息块。
可选地,在存储通信消息i的消息数据之前,还包括:
检测消息块是否满足存储条件,存储条件包括:消息块中的数据标识所对应的媒体数据以及通信消息i的消息数据中的媒体数据的总大小未达到预设大小、消息块中的消息数据的条数未达到预设条数或者同时包括上述两者。
预设大小为***设置的大小或者用户自定义的大小,比如预设大小为***设置的80M。预设条数也可以为***设置或者用户自定义的条数,比如,预设条数可以为***设置的2000条。
以存储条件包括消息块中的数据标识所对应的媒体数据以及通信消息i的消息数据中的媒体数据的总大小未达到预设大小为例,第一社交应用客户端可以获取消息块中的各个消息体中存储的数据标识,统计各个数据标识所对应的媒体数据与通信消息i的消息数据中的媒体数据的总大小,检测统计得到的总大小是否达到预设大小。其中,若通信消息i的消息数据中不包括媒体数据,则通信消息i的消息数据中的媒体数据的大小即为0。
以存储条件包括消息块中的消息数据的条数未达到预设条数为例,第一社交应用客户端可以统计消息块中所对应的通信消息的条数,检测统计得到的条数是否达到预设条数。
若存储条件同时包括上述两者,则第一社交应用客户端可以同时执行上述两种检测,本实施例对此并不做限定。
若检测结果为消息块满足存储条件,则在通信消息i所对应的消息数据包括消息类型和消息内容时,存储该消息数据至消息块;在通信消息i所对应的消息数据包括消息体和消息内容时,存储消息体至该消息块。
而若检测结果为消息块不满足存储条件,则说明该消息块中不能继续存储数据,此时在通信消息i所对应的消息数据包括消息类型和消息内容时,第一社交应用客户端可以存储该消息数据至该会话所对应的下一个消息块;在通信消息i所对应的消息数据包括消息体和消息内容时,存储消息体至该会话所对应的下一个消息块。
比如,以预设大小为80M,且存储与小花聊天的18条聊天消息为例,在按照聊天的先后顺序存储至第15条聊天消息所对应的消息数据时,第一社交应用客户端检测到在存储第15条消息数据之后,消息块所对应的媒体数据的总大小超过80M,此时,第一社交应用客户端可以存储第15条及其以后的聊天消息所对应的消息数据至下一个消息块,其具体存储方式与上述类似。
需要说明的是,本实施例只是以先执行步骤303后执行步骤304为例,可选地,步骤303和步骤304还可以交叉执行。比如,对于每个会话,第一社交应用客户端可以先生成一个消息块,并在该消息快中不能继续存储数据时,生成新的消息块,并存储数据至新生成的消息块,本实施例对其具体实现方式并不做限定。
步骤305,第一社交应用客户端同步每个消息块以及每个消息块中的数据标识所对应的媒体数据至第二社交应用客户端。
与上述实施例类似,第一社交应用客户端可以先同步每个消息块以及每个消息块中的数据标识所对应的媒体数据至服务器,由服务器转发至第二社交应用客户端;或者,第一社交应用客户端直接同步至第二社交应用客户端,本实施例对此并不做限定。
步骤306,第二社交应用客户端接收第一社交应用客户端同步的每个消息块以及每个消息块中的数据标识所对应的媒体数据。
步骤307,第二社交应用客户端存储每个消息块至消息文件,并存储消息块中的数据标识所对应的媒体数据至媒体文件,消息文件和媒体文件构成数据文件。
可选地,受终端设备读取文件时对文件大小的需求,消息文件设置有大小阈值,如最大为2G,类似的,媒体文件也设置有大小阈值,如同样为2G。这也就是说,在存储各个消息块至消息文件时,在存储某一消息块至消息文件之前,检测该消息文件的大小与该消息块的大小的总和是否达到大小阈值,若未达到,则存储该消息块至该消息文件;而若达到大小阈值,则存储该消息块至新生成的消息文件,本实施例对此并不做限定。
类似的,在存储媒体数据至媒体文件之前,检测媒体文件的大小与媒体数据的大小的总和是否达到大小阈值,若未达到,则存储该媒体数据至该媒体文件,而若达到,则存储该媒体数据至新生成的媒体文件,本实施例对此并不做限定。
请参考图3D,其示出了第二社交应用客户端得到的消息文件和媒体文件的一种可能的示意图。
需要说明的是,实际实现时,消息文件可以有一个也可以有至少两个,本实施例对其个数并不做限定;类似的,媒体文件也可以有一个或者至少两个,对此也不做限定。
步骤308,第二社交应用客户端确定每个消息块在数据文件中的存储位置。
实际实现时,由于消息块存储在数据文件中的消息文件中,因此,第二社交应用客户端可以确定每个消息块在消息文件中的存储位置。其中,该存储位置可以通过消息块在消息文件中的起始存储位置和长度来表示,或者,通过消息块在消息文件中的起始存储位置以及结束存储位置来表示,本实施例对此并不做限定。
步骤309,第二社交应用客户端确定各个媒体数据在媒体文件中的存储位置。
与步骤308类似,在媒体文件中的存储位置可以通过媒体数据在媒体文件中的起始存储位置和长度来表示,或者,通过媒体数据在媒体文件中的起始存储位置以及结束存储位置来表示,本实施例对此并不做限定。
步骤310,第二社交应用客户端生成并保存对应关系。
对应关系包括消息块、消息块所对应的会话以及消息块的存储位置之间的对应关系以及数据标识与媒体数据在媒体文件中的存储位置之间的对应关系,消息块所对应的会话为消息块中的消息数据所对应的通信消息所属的会话。
请参考下表,其示出了一种可能的消息块、消息块所对应的会话以及消息块的存储位置之间的对应关系。其中,起始位置2=起始位置1+长度1,起始位置3=起始位置2+长度2,起始位置4=起始位置3+长度3。
消息块 | 消息块所对应的会话 | 存储位置 |
消息块1 | 小明 | 起始位置1+长度1 |
消息块2 | 小花 | 起始位置2+长度2 |
消息块3 | 小花 | 起始位置3+长度3 |
消息块4 | 小刚 | 起始位置4+长度4 |
第二社交应用客户端生成对应关系之后,可以保存生成的对应关系至索引文件。其中,该索引文件为用于存储各个对应关系的文件。比如,请参考图3E,其示出了在本实施例中第二社交应用客户端存储的数据文件和索引文件的示意图。
综上所述,本实施例提供的通信消息同步方法,通过在获取到待同步的n条通信消息以及每条通信消息的消息类型之后,对于每条通信消息,生成包括消息类型以及消息内容的消息数据,并以消息块为单位同步生成的n条消息数据至第二社交应用客户端,这样,由于每条消息数据中包括消息类型和消息内容,所以第二社交应用客户端可以根据接收到的消息数据解析出对应的通信消息;解决了现有技术中在同步通信消息至其他平台之后,其他平台中的社交应用客户端可能无法识别该通信消息的问题;达到了可以实现跨平台的通信消息同步的效果。
通过在存储消息数据之前,先检测消息块是否满足存储条件,降低了在消息块所对应的媒体数据的总大小过大,或者消息块过大时,在消息块同步失败后,重新同步该消息块以及该消息块所对应的媒体数据时所需耗费的网络资源。
当消息块对应于至少两条消息数据时,上述方法避免了每次同步一条消息数据时,由于封装时使用的包头而导致同步过程中需要耗费一定的网络资源的问题。
请参考图4A,其示出了本发明一个实施例提供的通信消息同步方法的方法流程图,本实施例以该方法用于图1所示的应用场景中来举例说明,如图4A所示,该通信消息同步方法可以包括:
步骤401,第一社交应用客户端获取第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数。
本步骤与步骤201类似,在此不再赘述。
步骤402,对于每条通信消息,第一社交应用客户端生成包括消息类型以及消息内容的消息数据。
本步骤与步骤302的区别在于,在本实施例中,不论消息类型如何,第一社交应用客户端均直接生成包括消息类型以及消息内容的消息数据。
比如,对于图3B所示的与小明的聊天消息,请参考图4B,第一社交应用客户端可以生成图4B所示的4条消息数据。
步骤403,n条通信消息来自m个会话,对于每个会话,第一社交应用客户端生成消息块。
步骤404,对于任一会话中的任一通信消息i,将通信消息i的消息数据按预设顺序存储至通信消息i所属会话对应的消息块中。
本步骤与步骤304类似,不同的是,步骤304中,存储消息体至消息块,而在本实施例中直接存储消息数据至消息块,在此不再赘述。
步骤405,第一社交应用客户端同步每个消息块至第二社交应用客户端。
步骤406,第二社交应用客户端接收第一社交应用客户端同步的各个消息块。
步骤407,第二社交应用客户端存储每个消息块至数据文件。
步骤408,第二社交应用客户端确定每个消息块在数据文件中的存储位置。
步骤409,第二社交应用客户端生成并保存对应关系。
综上所述,本实施例提供的通信消息同步方法,通过在获取到待同步的n条通信消息以及每条通信消息的消息类型之后,对于每条通信消息,生成包括消息类型以及消息内容的消息数据,并以消息块为单位同步生成的n条消息数据至第二社交应用客户端,这样,由于每条消息数据中包括消息类型和消息内容,所以第二社交应用客户端可以根据接收到的消息数据解析出对应的通信消息;解决了现有技术中在同步通信消息至其他平台之后,其他平台中的社交应用客户端可能无法识别该通信消息的问题;达到了可以实现跨平台的通信消息同步的效果。
当消息块对应于至少两条消息数据时,避免了每次同步一条消息数据时,由于封装时使用的包头而导致同步过程中需要耗费一定的网络资源的问题。
在上述各个实施例中,需要补充说明的一点是,在第一社交应用客户端同步消息块所对应的消息数据至第二社交应用客户端之前,第一社交应用客户端还可以执行如下步骤:
获取每个消息块所对应的时间信息,时间信息的起始时刻为消息块中的首条消息数据所对应的通信消息的接收时间,时间信息的结束时刻为消息块中的最后一条消息数据所对应的通信消息的接收时间。
其中,若消息块只对应于一条通信消息,则该消息块所对应的时间信息为接收该通信消息的时间,本实施例对此并不做限定。
仍然以与小明聊天的4条聊天消息为例,第一条聊天消息的时间为15:31:20,第四条聊天消息的时间为15:33:35,则4条聊天消息所对应的消息块1的时间信息为15:31:20~15:33:35。
在同步消息块所对应的消息数据至第二社交应用客户端时,同步消息块所对应的时间信息至第二社交应用客户端。
第二社交应用客户端接收到该时间信息之后,生成的第一对应关系包括消息块、消息块所对应的会话、消息块的存储位置以及消息块所对应的时间段之间的对应关系。
此后,第二社交应用客户端需要触发第一社交应用客户端执行同步时,第二社交应用客户端可以执行如下步骤:
第一,第二社交应用客户端根据保存的对应关系确定各个会话的时间戳信息,时间戳信息为第二社交应用客户端根据保存的对应关系确定的各个会话中最后一条消息数据所对应的通信消息的接收时间。
由于第二社交应用客户端中存储的对应关系中包括消息块、消息块所对应的会话、消息块所对应的时间信息以及消息块所对应的存储位置之间的对应关系,因此,第二社交应用客户端可以根据存储的各个对应关系确定每个会话的时间戳信息。
比如,对于与小明的会话,第二社交应用客户端确定得到的时间戳信息为9:30:37。
第二,第二社交应用客户端发送时间戳信息至第一社交应用客户端。
相应的,第一社交应用客户端接收第二社交应用客户端发送的各个会话的时间戳信息。
此后,对于每个会话,第一社交应用客户端根据会话的时间戳信息获取在时间戳信息之后接收到的会话中的各条通信消息,并获取各条通信消息的消息类型。
在一个实际应用场景中,用户在PC(Personal Computer,个人电脑)中登录第二社交应用客户端,第二社交应用客户端上报PC的IP地址和端口至服务器;服务器检测在手机中的第一社交应用客户端是否在线,若在线,则发送PC的IP地址和端口至手机,手机接收到IP地址和端口之后建立与PC之间的直连。PC根据本地存储的索引文件确定各个会话的时间戳信息,通过建立的直连发送时间戳信息至手机,手机接收到各个时间戳信息之后,根据各个时间戳信息获取各个会话中在该时间戳信息之后增加的通信消息,并生成每条通信消息所对应的消息数据,以消息块为单位同步生成的n条消息数据至第二社交应用客户端。第二社交应用客户端接收到之后,存储至数据文件,创建并保存对应关系。其中,若服务器的检测结果为第一社交应用客户端不在线,则此时提示第二社交应用客户端本次同步失败。
上述实施例只是以通过时间信息来标记通信消息的同步进度来举例,实际实现时,第一社交应用客户端还可以为每条通信消息分配序号,并在同步消息块至第二社交应用客户端时,同步该消息块所对应的序号范围至第二社交应用客户端。也即,第二社交应用客户端中可以保存各个消息块中最后一条通信消息的序号,这样,在第二社交应用客户端上线之后,第二社交应用客户端可以发送各个会话的最后一条通信消息的序号至第一社交应用客户端,而第一社交应用客户端根据该序号获取会话中序号在该序号之后的各条通信消息,本实施例对其具体实现并不做限定。
需要补充说明的第二点是,第一社交应用客户端还可以获取每个会话的会话信息,比如,会话的昵称、备注等等,然后以消息块为单位同步消息数据至第二社交应用客户端时,同步消息块所对应的会话信息至第二社交应用客户端。相应的,第二社交应用客户端可以接收该会话消息,并在索引信息中存储该会话信息,本实施例对此并不做限定。
需要补充说明的第三点是,在第一社交应用客户端同步n条消息数据至第二社交应用客户端之前,为了保证数据传输的安全性,第一社交应用客户端还可以先对n条消息数据进行加密。可选地,第一社交应用客户端可以发送密钥获取请求至服务器,接收服务器返回的密钥,根据接收到的密钥对消息数据进行加密。其中,不同帐号的社交应用客户端发送密钥获取请求至服务器之后,获取到的密钥可以不同。可选地,第一社交应用客户端中还可以存储有公钥,并在发送密钥获取请求时发送携带有该公钥的密钥获取请求,服务器接收到该密钥获取请求之后,获取该公钥对应的加密方法,反馈获取到的加密方法至第一社交应用客户端,第一社交应用客户端根据接收到的加密方法执行加密。其中,第一社交应用客户端可以对n条消息数据以消息块为单位进行加密,对此并不做限定。这样,第二社交应用客户端在需要对消息数据所对应的通信消息进行重建时,第二社交应用客户端也需要采用类似方法从服务器获取解密密钥或者获取解密方法,本实施例对此并不做限定。
需要补充说明的第四点是,在上述各个实施例中,在第二客户端需要重建会话中的通信消息时,上述通信消息同步方法还可以包括如下步骤:
第二社交应用客户端根据保存的对应关系重建各个消息块所对应的各条通信消息。
此后,第二社交应用客户端在对会话中的通信消息进行重建时,第二社交应用客户端可以根据保存的对应关系读取到会话所对应的消息块中的内容,并在消息块中包括数据标识时,根据数据标识与媒体数据在媒体文件中的存储位置之间的对应关系从媒体文件中读取对应的媒体数据,此后,即可重建出各条通信消息。可选地,第二社交应用客户端可以从存储对应关系的索引文件中先读取出对应关系,然后再根据读取到的对应关系重建通信消息,本实施例对此并不做限定。
比如,结合图3B,以重建与小明的聊天消息为例,第二社交应用客户端可以根据会话‘小明’查找到对应的消息块1的存储位置为起始位置1+长度1。并从该存储位置中读取出该消息块1的内容,也即图3C所示的内容,此后,根据数据标识与媒体数据的存储位置之间的对应关系即可从媒体文件中读取到图3C中音频消息1以及音频消息2,这样,即可恢复出与小明的聊天记录。
需要补充说明的是,对应关系还包括消息块与消息块中的消息体中的数据标识之间的对应关系。以消息块1为例,第二社交应用客户端还可以生成下表所示的对应关系。
消息块1 | 音频ID1,音频ID2 |
通过生成包括消息块与消息块中的消息体中的数据标识之间的对应关系,使得在根据消息块进行通信消息重建时,无需等待遍历消息块中的各个条目之后才能读取对应的媒体数据,通信消息的重建效率较低的问题,达到了可以根据存储的上述对应关系直接读取到数据标识,进而快速加载对应的媒体数据,提高通信消息的重建效率的效果。
需要补充说明的第五点是,上述只是以第二社交应用客户端直接以消息块为单位存储消息数据至数据文件为例,可选地,第二社交应用客户端还可以将接收到的以消息块为单位的n条消息数据划分为粒度更小的消息块,或者合并为粒度更大的消息块,比如,合并为同一会话对应于一个消息块,本实施例对此并不做限定。
需要补充说明的第五点是,上述实施例中关于第一社交应用客户端侧的步骤可以单独实现成为第一社交应用客户端侧的通信消息同步方法,而关于第二社交应用客户端侧的步骤可以单独实现成为第二社交应用客户端侧的通信消息同步方法。
请参考图5,其示出了本发明一个实施例提供的通信消息同步装置的结构示意图,该通信消息同步装置用于图1所示的第一社交应用客户端中。如图5所示,该通信消息同步装置可以包括:获取模块510、生成模块520和同步模块530。
第一获取模块510,用于获取所述第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数;
生成模块520,用于对于每条通信消息,生成包括所述通信消息的消息类型以及所述通信消息的消息内容的消息数据;
同步模块530,用于以消息块为单位同步生成的n条消息数据至第二社交应用客户端;第二社交应用客户端以消息块为单位存储n条消息数据至数据文件,生成并保存对应关系;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,至少两条消息数据所对应的通信消息属于同一会话,第二社交应用客户端与第一社交应用客户端类型相同且共用同一社交帐号;对应关系包括消息块、消息块所对应的会话以及消息块的存储位置之间的对应关系,消息块所对应的会话为消息块中的消息数据所对应的通信消息所属的会话。
综上所述,本实施例提供的通信消息同步装置,通过在获取到待同步的n条通信消息以及每条通信消息的消息类型之后,对于每条通信消息,生成包括消息类型以及消息内容的消息数据,并以消息块为单位同步生成的n条消息数据至第二社交应用客户端,这样,由于每条消息数据中包括消息类型和消息内容,所以第二社交应用客户端可以根据接收到的消息数据解析出对应的通信消息;解决了现有技术中在同步通信消息至其他平台之后,其他平台中的社交应用客户端可能无法识别该通信消息的问题;达到了可以实现跨平台的通信消息同步的效果。
基于上述实施例提供的通信消息同步装置,可选的,若所述消息类型为图片或者音视频,所述生成模块520,还用于生成包括所述消息类型以及数据标识的消息体,并生成包括所述消息内容的媒体数据,所述数据标识用于指向所述媒体数据,所述消息体和所述媒体数据构成所述消息数据。
可选的,所述同步模块530,包括:
生成单元,用于所述n条通信消息来自m个会话,对于每个会话,生成消息块,m为正整数;
同步单元,用于对于任一会话中的任一通信消息i,如果所述通信消息i的消息数据包括消息体和媒体数据,则将所述通信消息i的消息体按预设顺序存储至所述通信消息i所属会话对应的消息块中,在同步所述通信消息i的消息数据时,同步所述通信消息i所属会话对应的消息块及所述通信消息i的媒体数据至所述第二社交应用客户端,所述预设顺序为接收到通信消息的先后顺序。
可选的,所述同步模块530,包括:
生成单元,用于所述n条通信消息来自m个会话,对于每个会话,生成消息块,m为正整数;
同步单元,用于对于任一会话中的任一通信消息i,将所述通信消息i的消息数据按预设顺序存储至所述通信消息i所属会话对应的消息块中,在同步所述通信消息i的消息数据时,同步所述通信消息i所属会话对应的消息块至所述第二社交应用客户端,所述预设顺序为接收到通信消息的先后顺序。
可选的,所述生成单元,还用于根据会话中的各条通信消息所对应的消息数据的总大小,和/或,所述会话中的通信消息的条数,为所述会话生成至少一个消息块。
可选的,所述装置还包括:
第二获取模块,用于获取每个消息块所对应的时间信息,所述时间信息的起始时刻为所述消息块中的首条消息数据所对应的通信消息的接收时间,所述时间信息的结束时刻为所述消息块中的最后一条消息数据所对应的通信消息的接收时间;
所述同步模块530,还用于在同步每个消息块至所述第二社交应用客户端时,同步所述消息块所对应的时间信息至所述第二社交应用客户端。
可选的,所述第一获取模块,包括:
接收单元,用于接收所述第二社交应用客户端发送的各个会话的时间戳信息,所述时间戳信息为所述第二社交应用客户端根据保存的对应关系确定的各个会话中最后一条消息数据所对应的通信消息的接收时间;
获取单元,用于对于每个会话,根据所述会话的时间戳信息获取在所述时间戳信息之后接收到的所述会话中的各条通信消息,并获取各条通信消息的消息类型。
请参考图6,其示出了本发明一个实施例提供的通信消息同步装置的结构示意图,该通信消息同步装置用于图1所示的第二社交应用客户端中。如图6所示,该通信消息同步装置可以包括:第一接收模块610、存储模块620、和生成模块630。
第一接收模块610,用于接收第一社交应用客户端以消息块为单位同步的n条消息数据;所述第一社交应用客户端与所述第二社交应用客户端类型相同且共用同一社交帐号;每条消息数据为所述第一社交应用客户端生成的包括一条通信消息的消息类型以及消息内容的数据;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,所述至少两条消息数据所对应的通信消息属于同一会话;
存储模块620,用于以所述消息块为单位存储所述n条消息数据至数据文件;
生成模块630,用于生成并保存对应关系;所述对应关系包括消息块、所述消息块所对应的会话以及所述消息块的存储位置之间的对应关系,所述消息块所对应的会话为所述消息块中的消息数据所对应的通信消息所属的会话。
综上所述,本实施例提供的通信消息同步装置,通过在获取到待同步的n条通信消息以及每条通信消息的消息类型之后,对于每条通信消息,生成包括消息类型以及消息内容的消息数据,并以消息块为单位同步生成的n条消息数据至第二社交应用客户端,这样,由于每条消息数据中包括消息类型和消息内容,所以第二社交应用客户端可以根据接收到的消息数据解析出对应的通信消息;解决了现有技术中在同步通信消息至其他平台之后,其他平台中的社交应用客户端可能无法识别该通信消息的问题;达到了可以实现跨平台的通信消息同步的效果。
基于上述实施例提供的通信消息同步装置,可选的,
所述第一接收模块610,还用于接收所述第一社交应用客户端同步的每个消息块以及消息块中的数据标识所对应的媒体数据;其中,消息块中包括消息体,所述消息体中包括通信消息的消息类型以及数据标识,所述媒体数据中包括所述通信消息的消息内容,所述数据标识指向所述媒体数据;
所述存储模块620,还用于存储每个消息块至消息文件,并存储所述消息块中的数据标识所对应的媒体数据至媒体文件,所述消息文件和所述媒体文件构成所述数据文件;
所述对应关系还包括数据标识与媒体数据在所述媒体文件中的存储位置之间的对应关系。
可选的,所述对应关系还包括消息块与消息块中的消息体中的数据标识之间的对应关系。
可选的,所述装置还包括:
第二接收模块,用于接收所述第一社交应用客户端同步的每个消息块所对应的时间信息;所述时间信息的起始时刻为所述消息块中的首条消息数据所对应的通信消息的接收时间,所述时间信息的结束时刻为所述消息块中的最后一条消息数据所对应的通信消息的接收时间;
所述对应关系还包括消息块与所述消息块所对应的时间信息之间的对应关系。
可选的,所述装置还包括:
确定模块,用于根据保存的对应关系确定各个会话的时间戳信息,所述时间戳信息为所述第二社交应用客户端根据所述保存的对应关系确定的各个会话中最后一条消息数据所对应的通信消息的接收时间;
发送模块,用于发送所述时间戳信息至所述第一社交应用客户端。
需要说明的是:上述实施例提供的通信消息同步装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的通信消息同步装置和通信消息同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行通信消息同步方法。
图7其示出了本发明一个实施例提供的终端700的框图,该终端可以包括射频(RF,Radio Frequency)电路701、包括有一个或一个以上计算机可读存储介质的存储器702、输入单元703、显示单元704、传感器705、音频电路706、无线保真(WiFi,Wireless Fidelity)模块707、包括有一个或者一个以上处理核心的处理器708、以及电源709等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路701可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器708处理;另外,将涉及上行的数据发送给基站。通常,RF电路701包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路701还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器702可用于存储软件程序以及模块,处理器708通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器708和输入单元703对存储器702的访问。
输入单元703可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元703可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器708,并能接收处理器708发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元703还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元704可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元704可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器708以确定触摸事件的类型,随后处理器708根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图7中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路706、扬声器,传声器可提供用户与终端之间的音频接口。音频电路706可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路706接收后转换为音频数据,再将音频数据输出处理器708处理后,经RF电路701以发送给比如另一终端,或者将音频数据输出至存储器702以便进一步处理。音频电路706还可能包括耳塞插孔,以提供外设耳机与终端的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块707可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块707,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器708是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器709可包括一个或多个处理核心;优选的,处理器708可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器708中。
终端还包括给各个部件供电的电源709(比如电池),优选的,电源可以通过电源管理***与处理器709逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源709还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器708会运行存储在存储器702中的一个或一个以上的程序指令,从而实现上述各个方法实施例中所提供的通信消息同步方法。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种通信消息同步方法,其特征在于,用于第一社交应用客户端中,所述方法包括:
获取所述第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数;
对于每条通信消息,生成包括所述通信消息的消息类型以及所述通信消息的消息内容的消息数据;
以消息块为单位同步生成的n条消息数据至第二社交应用客户端;所述第二社交应用客户端以所述消息块为单位存储所述n条消息数据至数据文件,生成并保存对应关系;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,所述至少两条消息数据所对应的通信消息属于同一会话,所述第二社交应用客户端与所述第一社交应用客户端类型相同且共用同一社交帐号;所述对应关系包括消息块、所述消息块所对应的会话以及所述消息块的存储位置之间的对应关系,所述消息块所对应的会话为所述消息块中的消息数据所对应的通信消息所属的会话。
2.根据权利要求1所述的方法,其特征在于,若所述消息类型为图片或者音视频,所述生成包括所述通信消息的消息类型以及所述通信消息的消息内容的消息数据,包括:
生成包括所述消息类型以及数据标识的消息体,并生成包括所述消息内容的媒体数据,所述数据标识用于指向所述媒体数据,所述消息体和所述媒体数据构成所述消息数据。
3.根据权利要求2所述的方法,其特征在于,所述以消息块为单位同步生成的n条消息数据至第二社交应用客户端,包括:
所述n条通信消息来自m个会话,对于每个会话,生成消息块,m为正整数;
对于任一会话中的任一通信消息i,如果所述通信消息i的消息数据包括消息体和媒体数据,则将所述通信消息i的消息体按预设顺序存储至所述通信消息i所属会话对应的消息块中,在同步所述通信消息i的消息数据时,同步所述通信消息i所属会话对应的消息块及所述通信消息i的媒体数据至所述第二社交应用客户端,所述预设顺序为接收到通信消息的先后顺序。
4.根据权利要求1所述的方法,其特征在于,所述以消息块为单位同步生成的n条消息数据至第二社交应用客户端,包括:
所述n条通信消息来自m个会话,对于每个会话,生成消息块,m为正整数;
对于任一会话中的任一通信消息i,将所述通信消息i的消息数据按预设顺序存储至所述通信消息i所属会话对应的消息块中,在同步所述通信消息i的消息数据时,同步所述通信消息i所属会话对应的消息块至所述第二社交应用客户端,所述预设顺序为接收到通信消息的先后顺序。
5.根据权利要求3或4所述的方法,其特征在于,所述对于每个会话,生成消息块,包括:
根据会话中的各条通信消息所对应的消息数据的总大小,和/或,所述会话中的通信消息的条数,为所述会话生成至少一个消息块。
6.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
获取每个消息块所对应的时间信息,所述时间信息的起始时刻为所述消息块中的首条消息数据所对应的通信消息的接收时间,所述时间信息的结束时刻为所述消息块中的最后一条消息数据所对应的通信消息的接收时间;
在同步每个消息块至所述第二社交应用客户端时,同步所述消息块所对应的时间信息至所述第二社交应用客户端。
7.根据权利要求1至4任一所述的方法,其特征在于,所述获取所述第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,包括:
接收所述第二社交应用客户端发送的各个会话的时间戳信息,所述时间戳信息为所述第二社交应用客户端根据保存的对应关系确定的各个会话中最后一条消息数据所对应的通信消息的接收时间;
对于每个会话,根据所述会话的时间戳信息获取在所述时间戳信息之后接收到的所述会话中的各条通信消息,并获取各条通信消息的消息类型。
8.一种通信消息同步方法,其特征在于,用于第二社交应用客户端中,所述方法包括:
接收第一社交应用客户端以消息块为单位同步的n条消息数据;所述第一社交应用客户端与所述第二社交应用客户端类型相同且共用同一社交帐号;每条消息数据为所述第一社交应用客户端生成的包括一条通信消息的消息类型以及消息内容的数据;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,所述至少两条消息数据所对应的通信消息属于同一会话;
以所述消息块为单位存储所述n条消息数据至数据文件;
生成并保存对应关系;所述对应关系包括消息块、所述消息块所对应的会话以及所述消息块的存储位置之间的对应关系,所述消息块所对应的会话为所述消息块中的消息数据所对应的通信消息所属的会话。
9.根据权利要求8所述的方法,其特征在于,所述接收第一社交应用客户端以消息块为单位同步的n条消息数据,包括:
接收所述第一社交应用客户端同步的每个消息块以及消息块中的数据标识所对应的媒体数据;其中,消息块中包括消息体,所述消息体中包括通信消息的消息类型以及数据标识,所述媒体数据中包括所述通信消息的消息内容,所述数据标识指向所述媒体数据;
所述以消息块为单位存储所述n条消息数据至数据文件,包括:
存储每个消息块至消息文件,并存储所述消息块中的数据标识所对应的媒体数据至媒体文件,所述消息文件和所述媒体文件构成所述数据文件;
所述对应关系还包括数据标识与媒体数据在所述媒体文件中的存储位置之间的对应关系。
10.根据权利要求9所述的方法,其特征在于,所述对应关系还包括消息块与消息块中的消息体中的数据标识之间的对应关系。
11.根据权利要求8至10任一所述的方法,其特征在于,所述方法还包括:
接收所述第一社交应用客户端同步的每个消息块所对应的时间信息;所述时间信息的起始时刻为所述消息块中的首条消息数据所对应的通信消息的接收时间,所述时间信息的结束时刻为所述消息块中的最后一条消息数据所对应的通信消息的接收时间;
所述对应关系还包括消息块与所述消息块所对应的时间信息之间的对应关系。
12.根据权利要求8至10任一所述的方法,其特征在于,所述方法还包括:
根据保存的对应关系确定各个会话的时间戳信息,所述时间戳信息为所述第二社交应用客户端根据所述保存的对应关系确定的各个会话中最后一条消息数据所对应的通信消息的接收时间;
发送所述时间戳信息至所述第一社交应用客户端。
13.一种通信消息同步装置,其特征在于,用于第一社交应用客户端中,所述装置包括:
第一获取模块,用于获取所述第一社交应用客户端中待同步的n条通信消息以及每条通信消息的消息类型,n为大于等于1的整数;
生成模块,用于对于每条通信消息,生成包括所述通信消息的消息类型以及所述通信消息的消息内容的消息数据;
同步模块,用于以消息块为单位同步生成的n条消息数据至第二社交应用客户端;所述第二社交应用客户端以所述消息块为单位存储所述n条消息数据至数据文件,生成并保存对应关系;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,所述至少两条消息数据所对应的通信消息属于同一会话,所述第二社交应用客户端与所述第一社交应用客户端类型相同且共用同一社交帐号;所述对应关系包括消息块、所述消息块所对应的会话以及所述消息块的存储位置之间的对应关系,所述消息块所对应的会话为所述消息块中的消息数据所对应的通信消息所属的会话。
14.根据权利要求13所述的装置,其特征在于,若所述消息类型为图片或者音视频,所述生成模块,还用于生成包括所述消息类型以及数据标识的消息体,并生成包括所述消息内容的媒体数据,所述数据标识用于指向所述媒体数据,所述消息体和所述媒体数据构成所述消息数据。
15.根据权利要求14所述的装置,其特征在于,所述同步模块,包括:
生成单元,用于所述n条通信消息来自m个会话,对于每个会话,生成消息块,m为正整数;
同步单元,用于对于任一会话中的任一通信消息i,如果所述通信消息i的消息数据包括消息体和媒体数据,则将所述通信消息i的消息体按预设顺序存储至所述通信消息i所属会话对应的消息块中,在同步所述通信消息i的消息数据时,同步所述通信消息i所属会话对应的消息块及所述通信消息i的媒体数据至所述第二社交应用客户端,所述预设顺序为接收到通信消息的先后顺序。
16.根据权利要求13所述的装置,其特征在于,所述同步模块,包括:
生成单元,用于所述n条通信消息来自m个会话,对于每个会话,生成消息块,m为正整数;
同步单元,用于对于任一会话中的任一通信消息i,将所述通信消息i的消息数据按预设顺序存储至所述通信消息i所属会话对应的消息块中,在同步所述通信消息i的消息数据时,同步所述通信消息i所属会话对应的消息块至所述第二社交应用客户端,所述预设顺序为接收到通信消息的先后顺序。
17.根据权利要求15或16所述的装置,其特征在于,所述生成单元,还用于根据会话中的各条通信消息所对应的消息数据的总大小,和/或,所述会话中的通信消息的条数,为所述会话生成至少一个消息块。
18.根据权利要求13至16任一所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取每个消息块所对应的时间信息,所述时间信息的起始时刻为所述消息块中的首条消息数据所对应的通信消息的接收时间,所述时间信息的结束时刻为所述消息块中的最后一条消息数据所对应的通信消息的接收时间;
所述同步模块,还用于在同步每个消息块至所述第二社交应用客户端时,同步所述消息块所对应的时间信息至所述第二社交应用客户端。
19.根据权利要求13至16任一所述的装置,其特征在于,所述第一获取模块,包括:
接收单元,用于接收所述第二社交应用客户端发送的各个会话的时间戳信息,所述时间戳信息为所述第二社交应用客户端根据保存的对应关系确定的各个会话中最后一条消息数据所对应的通信消息的接收时间;
获取单元,用于对于每个会话,根据所述会话的时间戳信息获取在所述时间戳信息之后接收到的所述会话中的各条通信消息,并获取各条通信消息的消息类型。
20.一种通信消息同步装置,其特征在于,用于第二社交应用客户端中,所述装置包括:
第一接收模块,用于接收第一社交应用客户端以消息块为单位同步的n条消息数据;所述第一社交应用客户端与所述第二社交应用客户端类型相同且共用同一社交帐号;每条消息数据为所述第一社交应用客户端生成的包括一条通信消息的消息类型以及消息内容的数据;每个消息块对应于至少一条消息数据,且在对应于至少两条消息数据时,所述至少两条消息数据所对应的通信消息属于同一会话;
存储模块,用于以所述消息块为单位存储所述n条消息数据至数据文件;
生成模块,用于生成并保存对应关系;所述对应关系包括消息块、所述消息块所对应的会话以及所述消息块的存储位置之间的对应关系,所述消息块所对应的会话为所述消息块中的消息数据所对应的通信消息所属的会话。
21.根据权利要求20所述的装置,其特征在于,
所述第一接收模块,还用于接收所述第一社交应用客户端同步的每个消息块以及消息块中的数据标识所对应的媒体数据;其中,消息块中包括消息体,所述消息体中包括通信消息的消息类型以及数据标识,所述媒体数据中包括所述通信消息的消息内容,所述数据标识指向所述媒体数据;
所述存储模块,还用于存储每个消息块至消息文件,并存储所述消息块中的数据标识所对应的媒体数据至媒体文件,所述消息文件和所述媒体文件构成所述数据文件;
所述对应关系还包括数据标识与媒体数据在所述媒体文件中的存储位置之间的对应关系。
22.根据权利要求21所述的装置,其特征在于,所述对应关系还包括消息块与消息块中的消息体中的数据标识之间的对应关系。
23.根据权利要求20至22任一所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述第一社交应用客户端同步的每个消息块所对应的时间信息;所述时间信息的起始时刻为所述消息块中的首条消息数据所对应的通信消息的接收时间,所述时间信息的结束时刻为所述消息块中的最后一条消息数据所对应的通信消息的接收时间;
所述对应关系还包括消息块与所述消息块所对应的时间信息之间的对应关系。
24.根据权利要求20至22任一所述的装置,其特征在于,所述装置还包括:
确定模块,用于根据保存的对应关系确定各个会话的时间戳信息,所述时间戳信息为所述第二社交应用客户端根据所述保存的对应关系确定的各个会话中最后一条消息数据所对应的通信消息的接收时间;
发送模块,用于发送所述时间戳信息至所述第一社交应用客户端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056492.1A CN106506674B (zh) | 2016-11-25 | 2016-11-25 | 通信消息同步方法及装置 |
PCT/CN2017/107471 WO2018095175A1 (zh) | 2016-11-25 | 2017-10-24 | 通信消息同步方法、数据备份方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056492.1A CN106506674B (zh) | 2016-11-25 | 2016-11-25 | 通信消息同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106506674A true CN106506674A (zh) | 2017-03-15 |
CN106506674B CN106506674B (zh) | 2019-07-09 |
Family
ID=58327714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611056492.1A Active CN106506674B (zh) | 2016-11-25 | 2016-11-25 | 通信消息同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106506674B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107171930A (zh) * | 2017-04-20 | 2017-09-15 | 北京三快在线科技有限公司 | 一种即时通信应用中的信息展示方法及装置,电子设备 |
WO2018095175A1 (zh) * | 2016-11-25 | 2018-05-31 | 腾讯科技(深圳)有限公司 | 通信消息同步方法、数据备份方法、设备及存储介质 |
CN109525486A (zh) * | 2018-11-27 | 2019-03-26 | 北京微播视界科技有限公司 | 即时通信的会话消息加载方法、装置、电子设备及介质 |
CN109788017A (zh) * | 2017-11-15 | 2019-05-21 | ***通信集团终端有限公司 | 跨品牌儿童手表信息同步方法、装置、设备及介质 |
CN110059304A (zh) * | 2018-01-19 | 2019-07-26 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置、电子设备以及存储介质 |
CN110198335A (zh) * | 2018-08-30 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 消息同步方法及装置、电子设备及存储介质 |
CN111343231A (zh) * | 2020-01-22 | 2020-06-26 | 奇安信科技集团股份有限公司 | 一种即时通信的数据提取方法、装置、计算机***及可读存储介质 |
CN111918383A (zh) * | 2020-08-17 | 2020-11-10 | 大连交通大学 | 一种基于蓝牙装置、无线局域网的自校验消息同步方法 |
CN112260930A (zh) * | 2019-07-02 | 2021-01-22 | 国际商业机器公司 | 创建跨通信信道的全局对话线程的***和方法 |
US11398996B2 (en) | 2019-07-02 | 2022-07-26 | International Business Machines Corporation | System and method to create global conversation thread across communication channels |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101095104A (zh) * | 2004-12-30 | 2007-12-26 | 三星电子株式会社 | 终端数据格式和使用该终端数据格式的通信控制***及方法 |
CN101640588A (zh) * | 2009-08-18 | 2010-02-03 | 中兴通讯股份有限公司 | 一种进行数据同步和处理的方法及*** |
CN101753416A (zh) * | 2008-12-03 | 2010-06-23 | 中兴通讯股份有限公司 | 消息发送方法及装置 |
CN103198851A (zh) * | 2013-03-05 | 2013-07-10 | 福建星网视易信息***有限公司 | 一种基于时间戳消息的多终端同步播放方法 |
CN104885055A (zh) * | 2014-03-19 | 2015-09-02 | 华为终端有限公司 | 一种应用数据同步的方法及装置 |
CN106131137A (zh) * | 2016-06-26 | 2016-11-16 | 乐视控股(北京)有限公司 | 数据同步方法、***及用于数据同步的用户终端和服务端 |
-
2016
- 2016-11-25 CN CN201611056492.1A patent/CN106506674B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101095104A (zh) * | 2004-12-30 | 2007-12-26 | 三星电子株式会社 | 终端数据格式和使用该终端数据格式的通信控制***及方法 |
CN101753416A (zh) * | 2008-12-03 | 2010-06-23 | 中兴通讯股份有限公司 | 消息发送方法及装置 |
CN101640588A (zh) * | 2009-08-18 | 2010-02-03 | 中兴通讯股份有限公司 | 一种进行数据同步和处理的方法及*** |
CN103198851A (zh) * | 2013-03-05 | 2013-07-10 | 福建星网视易信息***有限公司 | 一种基于时间戳消息的多终端同步播放方法 |
CN104885055A (zh) * | 2014-03-19 | 2015-09-02 | 华为终端有限公司 | 一种应用数据同步的方法及装置 |
CN106131137A (zh) * | 2016-06-26 | 2016-11-16 | 乐视控股(北京)有限公司 | 数据同步方法、***及用于数据同步的用户终端和服务端 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018095175A1 (zh) * | 2016-11-25 | 2018-05-31 | 腾讯科技(深圳)有限公司 | 通信消息同步方法、数据备份方法、设备及存储介质 |
CN107171930A (zh) * | 2017-04-20 | 2017-09-15 | 北京三快在线科技有限公司 | 一种即时通信应用中的信息展示方法及装置,电子设备 |
CN109788017A (zh) * | 2017-11-15 | 2019-05-21 | ***通信集团终端有限公司 | 跨品牌儿童手表信息同步方法、装置、设备及介质 |
CN110059304A (zh) * | 2018-01-19 | 2019-07-26 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置、电子设备以及存储介质 |
CN110059304B (zh) * | 2018-01-19 | 2024-05-24 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置、电子设备以及存储介质 |
CN110198335A (zh) * | 2018-08-30 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 消息同步方法及装置、电子设备及存储介质 |
CN109525486A (zh) * | 2018-11-27 | 2019-03-26 | 北京微播视界科技有限公司 | 即时通信的会话消息加载方法、装置、电子设备及介质 |
CN112260930A (zh) * | 2019-07-02 | 2021-01-22 | 国际商业机器公司 | 创建跨通信信道的全局对话线程的***和方法 |
US11398996B2 (en) | 2019-07-02 | 2022-07-26 | International Business Machines Corporation | System and method to create global conversation thread across communication channels |
CN111343231A (zh) * | 2020-01-22 | 2020-06-26 | 奇安信科技集团股份有限公司 | 一种即时通信的数据提取方法、装置、计算机***及可读存储介质 |
CN111918383A (zh) * | 2020-08-17 | 2020-11-10 | 大连交通大学 | 一种基于蓝牙装置、无线局域网的自校验消息同步方法 |
CN111918383B (zh) * | 2020-08-17 | 2023-10-27 | 大连交通大学 | 一种基于蓝牙装置、无线局域网的自校验消息同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106506674B (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106506674A (zh) | 通信消息同步方法及装置 | |
CN104243517B (zh) | 不同终端之间的内容分享方法及装置 | |
US20190122260A1 (en) | Method and apparatus for generating targeted label, and storage medium | |
CN104462128B (zh) | 多媒体文件处理的方法、装置和终端设备 | |
CN104754419A (zh) | 基于视频的互动方法和装置 | |
CN104869468A (zh) | 一种显示弹幕信息的方法和装置 | |
CN106161628A (zh) | 拍摄文件上传方法及装置 | |
CN105430424A (zh) | 一种视频直播的方法、装置和*** | |
CN106156228A (zh) | 资源发放***、资源发放方法及资源领取方法 | |
CN103678605B (zh) | 一种信息传输的方法、装置及终端设备 | |
CN103905885A (zh) | 视频直播方法及装置 | |
CN104954149A (zh) | 网络会议中进行数据共享的方法、装置及*** | |
CN106412093A (zh) | 一种数据的上传方法、装置及*** | |
CN103347003B (zh) | 一种语音互联方法、装置及*** | |
CN105245577A (zh) | 信息推送方法、装置及*** | |
CN103179026B (zh) | 用户交互式***中的通信方法、***及服务器和客户端 | |
CN106059894A (zh) | 一种消息处理方法和装置 | |
EP3249857B1 (en) | Chat history display method and apparatus | |
CN104426962A (zh) | 多终端绑定的方法、绑定服务器、终端及*** | |
CN104426963A (zh) | 关联终端的方法和终端 | |
CN106973330A (zh) | 一种屏幕直播方法、装置和*** | |
CN105471704A (zh) | 一种实现多人通话的方法、装置及*** | |
CN105447124A (zh) | 虚拟物品分享方法和装置 | |
CN108874258A (zh) | 分享录屏视频的方法及装置 | |
CN106775262A (zh) | 一种未读图标显示管理的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |