实现消息在不同终端漫游的方法及系统的制作方法_2

文档序号:8907602阅读:来源:国知局
度及消息内容。例如图3中示出的,消息头30为8bit,前4bit保存消息体的字节长度如本例中为252bit,后4bit保存接口代码如“发送消息”的接口代码“3001”。消息体31前4bit为发送者ID,紧接着的4bit为接收者ID,再紧接着的2bit保存聊天内容的字符串长度,最后的字节保存聊天消息的真实内容。当通讯服务端接收到聊天消息后,先将聊天消息按照图3所示的协议结构进行反序列化,并将聊天消息按照发送者和接收者的ID进行分类后,将同一接收者ID的重新编码打包。打包后通过分布式交换信息技术将数据通过socket写入缓存队列的长链接。在缓存的同时,通讯服务端将数据在云端持久化存储。
[0054]步骤S102:目标頂客户端在显示联系人界面时,向通讯服务端发送离线消息请求。
[0055]当用户通过用户名和密码登录頂客户端时,頂客户端软件本身首先进行用户界面的初始化操作(即读取本地存储的数据记录,根据頂客户端软件本身的各种界面和功能,将好友通讯录、最近联系人界面等进行数据的初始化,展示给用户,此为现有技术的部分,在此不过多赘述)。初始化完成后,在向用户显示最近联系人界面时,IM客户端加载本地数据库中的最后一条信息和未读条数,同时向通讯服务端发送离线消息请求。
[0056]步骤S103:通讯服务端接收到离线消息请求,查询云存储将符合条件的离线消息发送给目标頂客户端。
[0057]通讯服务端的云端存储有每个离线会话对应的人员ID、最后一条离线消息内容和离线消息条数等信息。图4示意性的显示了每个离线会话在云端存储的表结构,如图4所示,每个离线会话401 (由会话ID标识)对应一个发送者的人员ID402,该人员ID的发送者所发送的离线消息条数404和最后一条离线消息的内容403。通讯服务端接收到离线消息请求后,根据请求中的人员ID,查询云存储中的最后一条离线消息内容和离线消息条数,并将所有人员ID对应的离线消息数据根据字节数组协议结构编码后发送给IM客户端。
[0058]步骤S104:目标頂客户端接收离线消息进行本地存储和刷新UI显示。
[0059]目标IM客户端接收到离线消息数据后,首先根据字节数组协议结构将数据解析,解析后按照人员ID将最后一条离线消息内容和离线消息条数分类存入本地数据库,再从更新后的本地数据库读取离线消息刷新UI (User Interface,即用户界面)显示每个人员ID对应的最新的最后一条离线消息内容和离线消息条数。
[0060]步骤S105:目标頂客户端进入聊天界面加载本地消息,并向通讯服务端发送最新消息请求。
[0061]用户通过目标IM客户端进入特定会话聊天界面时,IM客户端优先加载本地数据库中最新的固定条数的消息记录,例如15条。同时,IM客户端向通讯服务端发送最新消息请求,通过用户ID (如userID)和当前会话ID (如targetID),请求当前会话对应的服务端存储的最新的固定条数的消息记录,如15条。
[0062]步骤S106:通讯服务端接收到最新消息请求,查询云存储,将符合条件的固定数目的最新消息发送给目标頂客户端。
[0063]通讯服务端接收到最新消息请求后,根据用户ID和会话ID查询云存储端保存的最新消息记录,并将符合条件(与当前请求的用户ID和会话ID匹配的最新的N条消息记录)的固定条数的最新消息数据编码后发送给目标IM客户端。
[0064]步骤S107:目标IM客户端接收最新消息,与本地存储的消息进行合并,更新本地存储和刷新Π显示。
[0065]IM客户端接收到最新消息数据后,字节数组排列技术将数据解析(具体方法与步骤SlOl通讯服务端的解析和编码方法相同,字节数组的协议结构如图3所示)以得到从通讯服务端获取的最新消息数据包括当前的用户ID、会话ID、最新消息的serverID及消息内容。解析后,IM客户端根据接收到的最新消息的serverlD和本地存储的消息的serverlD进行对比,如果serverlD对应的最新消息在本地数据库中不存在,就将对应的最新消息按照serverlD的存储顺序插入本地数据库中存储,例如本地数据库中存储有serverlD为2和4的消息记录,而解析出的最新消息的serverlD为3,就将serverlD为3的消息记录插入本地数据库相应数据表的serverlD为2和4的记录之间,也可以通过数据库指令存储后统一按serverlD排序,这些通过现有技术即可实现。完成最新消息的本地合并后,IM客户端根据当前本地存储的最新消息获取固定数目的消息记录刷新Π进行显示。
[0066]由此,完成数据请求、数据持久化和Π刷新后,当前IM客户端就展示所有终端合并后的云端最新的固定条数的聊天记录,从而实现消息通过云端存储在终端的漫游显示。而不同的頂客户端例如腾讯QQ、飞信、微信等,一般都是在当前会话中显示固定条数的聊天记录,通过本发明的方法,用户在不同终端设备上登录IM客户端后,用户在打开最近联系人界面、特定会话窗口和滑动下拉最近联系人界面及特定会话窗口界面时,IM客户端就分别向通讯服务端发送离线消息请求和最新消息请求,从而实现在不同设备终端的聊天记录在当前设备终端展示,即实现云消息的漫游同步。并且根据IM客户端在聊天窗口界面只展示固定条数消息的特点,本发明的每次最新消息请求都只返回固定条数(如15条)的最新消息记录,从而能够实现消息记录根据终端屏幕大小平滑展示,美观且方便用户查看。而当用户需要查看更多消息记录时,可通过滑动下拉再次触发IM客户端向通讯服务端请求最新消息,以加载展示更多消息记录。通过本发明的方法,用户无需任何设置及手动同步,使消息漫游更加简单方便,解决了頂终端漫游消息的同步且使消息漫游更加人性化,提升了用户体验。
[0067]图2示意性的显示了根据本发明的一种实施方式的实现消息漫游不同终端的系统的框架。如图2所示,该系统包括通讯服务端20、頂客户端21及云端2040。通讯服务端20包括通讯接口模块201、协议编解码模块202及持久化数据管理模块204。通讯接口模块201设置为与IM客户端进行通信,接收IM客户端的数据请求和将请求结果返回给IM客户端。协议编解码模块202设置为对发送和接收的数据通过字节数组排列的协议结构进行编码和解码,以实现数据的安全传输。本发明配置云存储环境(即云端),持久化数据管理模块204设置为将消息数据持久化存储在云端2040 (即通过云存储进行消息记录在服务端的保存,云存储是在云计算概念上延伸和发展出来的新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统),并根据頂客户端21的请求查询云端2040,以获取满足请求条件的消息数据转交协议编解码模块202进行编解码后通过通讯接口模块201返回给頂客户端21。
[0068]IM客户端21包括通讯接口模块211、协议编解码模块212、数据存储模块213及UI模块214。通讯接口模块211设置为与通讯服务端20进行通信,向通讯服务端20发送消息请求和接收通讯服务端20返回的消息数据。协议编解码模块212设置为对发送和接收的数据通过字节数组排列的协议结构进行编码和解码,以实现数据的安全传输。数据存储模块213设置为接收云端的最新消息和离线消息,按人员ID分类存储到本地,同时存储本地初始化数据,以进行IM客户端的初始化和数据更新,IM客户端的数据存储采用现有技术中常用的存储方式实现即可,如数据库存储或设备自带的硬件存储。Π模块214设置为根据本地存储的最新消息和离线消息,输出消息记录至IM客户端屏幕,将相应的信息展示给用户。
[0069]当用户登录頂客户端21后,通过通讯接口模块211将聊天数据发送到通讯服务端20。通讯服务端20通过其通讯接口 201接收聊天数据,并将当前发送消息的客户端的用户ID和对应的socket链接地址进行相应存储,并将聊天数据递交给协议编解码模块202进行数据解析。协议编解码模块202将聊天数据按照字节数组的协议结构反序列化后,将解析出的数据重新编码打包转发给持久化数据管理模块204保存。当目标頂客户端21登陆终端设备时
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1