一种基于XMPP协议的客户端与服务端离线数据实时同步方法技术

技术编号:18767155 阅读:195 留言:0更新日期:2018-08-25 12:52
本发明专利技术公开了一种基于XMPP协议的客户端与服务端离线数据实时同步的方法,客户端用户登录后生成唯一标识,通过后台服务监听移动设备与通信服务端的连接链路,服务端数据发生变更时通知通信服务羰,通信服务端生成XXMP消息通知客户端,通过客户端解析XXMP消息获取是哪些数据发生变更,再发送请求同步相应的变更数据,从而实现客户端与服务端的数据实时同步,同时客户端省电省流量,减少服务端的压力。

【技术实现步骤摘要】
一种基于XMPP协议的客户端与服务端离线数据实时同步方法
本专利技术涉及移动互联网通信技术,特别是一种基于XMPP协议的客户端与服务端离线数据实时同步方法。
技术介绍
随着移动智能设备的的日益普及,移动设备与服务端的数据同步也显得日益重要,当客户端需要和服务器交互时,基本上都需要主动发送求请求获取服务器端的最新数据,传统的方法在后台开启一个线程,采用轮询方式,即在规定的时间间隔,比如每10秒或者30秒,发送一次请求到服务器端,查询是否有数据变更,当用户数量级达到百万,且数据也较大时,我们的服务器压力就大了,关键是服务器上可能没有更新数据,很多访问都无功而返,浪费了服务器的资源,也浪费了用户移动端的流量。
技术实现思路
针对上述技术问题,本专利技术提出一种基于XMPP协议的客户端与服务端离线数据实时同步方法。本专利技术采用的技术方案是:一种基于XMPP协议的客户端与服务端离线数据实时同步方法,包括以下步骤(A)客户端生成设备唯一标识UUID;(B)提交用户名、密码和UUID参数以登录服务器端;(C)服务器端登录验证通过后,加载用户信息,然后发送用户ID和UUID到通信服务端生成消息键;(D)服务器端根据登录的用户ID和通信服务端返回的消息键生成消息会话;(E)服务端返回登录用户信息和消息会话到客户端,客户端本地存储消息会话;(F)客户端根据消息会话启动后台监听服务;(G)当用户数据发现变更时,服务器端发送数据所有者的相关用户ID和变更详情到通信服务端;(H)通信服务端根据用户ID和变更详情生成XXMP信息,然后发送XXMP通知客户端;(I)客户端与服务器端进行数据同步。所述步骤(A)中唯一标识UUID根据设备的IMEI、MacAddress、AndroidID硬件参数,参照静态字典进行编码生成。所述唯一标识UUID存储在本地Settings。所述唯一标识UUID存储在外部存储器。所述步骤(I)通过以下方法实现数据同步:客户端解析XXMP信息,获取数据变更的内容,然后将消息会话放在请求头里发送Http数据同步请求,服务器端解析判断消息会话的合法性,返回最新数据。本专利技术的有益效果:本专利技术一种基于XMPP协议的客户端与服务端离线数据实时同步的方法,根据设备的IMEI、MacAddress、AndroidID硬件参数,参照静态字典进行编码生成UUID唯一标识的值,成功登录服务端后,由通信服务端成生成MessageKey,服务器端根据登录的用户Id和通信服务端返回的消息键生成消息会话,再返回客户端,客户端启根据消息会话启动后台监听服务;当用户数据发现变更时,服务器端发送数据所有者的相关UserId和变更详情到通信服务端,通信服务端根据UserId和变更详情生成XXMP信息,然后发送XXMP通知客户端,客户端解析XXMP信息,获取数据变更的内容,然后将消息会话放在请求头里发送Http数据同步请求服务器端解析判断消息会话合法性,返回最新数据。服务端和通信服务端是相互通信,同时又相对独立、分离,服务端数据发生变更时,通过通信服务端发送XXMP通知客户端,客户端在省电省流量的情况下实现无感知的与服务端数据的实时同步,支持Android,Ios,Winphone三大类型移动客户端。附图说明下面结合附图对本专利技术的具体实施方式做进一步的说明。图1是本专利技术客户端与服务端离线数据实时同步方法的流程图;图2是本专利技术客户端和通信服务端建立长连接的流程图。具体实施方式如图1所示,为本专利技术的一种基于XMPP协议的客户端与服务端离线数据实时同步的方法,包括以下步骤(A)客户端生成设备唯一标识UUID:根据设备的IMEI、MacAddress、AndroidID硬件参数,参照静态字典进行编码生成UUID唯一标识的值,然后本地存储在Settings或者ExternalStorage,如果应用被卸载后重新安装,这些本地存储里的UUID还在的话,就是同一个设备;(B)提交用户名、密码和UUID参数以登录服务器端;(C)服务器端登录验证通过后,加载用户信息,然后发送用户ID和UUID到通信服务端生成消息键(MessageKey);(D)服务器端根据登录的用户ID和通信服务端返回的消息键生成消息会话(MessageSession);(E)服务端返回登录用户信息和消息会话到客户端,客户端本地存储消息会话;(F)客户端根据消息会话启动后台监听服务;(G)当用户数据发现变更时,服务器端发送数据所有者的相关用户ID和变更详情到通信服务端;(H)通信服务端根据用户ID和变更详情生成XXMP信息,然后发送XXMP通知客户端;(I)客户端与服务器端进行数据同步:客户端解析XXMP信息,获取数据变更的内容,然后将MessageSession放在请求头里发送Http数据同步请求,服务端解析判断MessageSession合法性,返回最新数据。如图2所示,为本专利技术客户端和通信服务端建立长连接的流程:客户端启动后,检查是否存在设备唯一标识UUID,如果不存根据设备的IMEI、MacAddress、AndroidID硬件参数,参照静态字典进行编码生成UUID唯一标识的值;检查网络是否可用,如果网络不可用则启动网络状态监听;检查MessageSession本地是否存在,是否有效,如果存在且有效则启动后台监听服务,与通信服务端建立网络长连接,否则登录服务器端获取MessageSession;客户端通过AlarmManager硬件时钟,可以在CPU休眠时正常运行,在预设的时间到达时,通过中断唤醒CPU,定时执行任务,CPU可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。客户端接收到XXMP消息,解析获得数据变更情况,客户端发送数据同步请求,实现数据同步。如上所述,本专利技术对比传统用轮询方式同步数据,本专利技术可以有效地降低了服务端压力,节省客户端的电量和流量。以上所述仅为本专利技术的优先实施方式,本专利技术并不限定于上述实施方式,只要以基本相同手段实现本专利技术目的的技术方案都属于本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种基于XMPP协议的客户端与服务端离线数据实时同步方法,其特征在于:包括以下步骤(A)客户端生成设备唯一标识UUID;(B)提交用户名、密码和UUID参数以登录服务器端;(C)服务器端登录验证通过后,加载用户信息,然后发送用户ID和UUID到通信服务端生成消息键;(D)服务器端根据登录的用户ID和通信服务端返回的消息键生成消息会话;(E)服务端返回登录用户信息和消息会话到客户端,客户端本地存储消息会话;(F)客户端根据消息会话启动后台监听服务;(G)当用户数据发现变更时,服务器端发送数据所有者的相关用户ID和变更详情到通信服务端;(H)通信服务端根据用户ID和变更详情生成XXMP信息,然后发送XXMP通知客户端;(I)客户端与服务器端进行数据同步。

【技术特征摘要】
1.一种基于XMPP协议的客户端与服务端离线数据实时同步方法,其特征在于:包括以下步骤(A)客户端生成设备唯一标识UUID;(B)提交用户名、密码和UUID参数以登录服务器端;(C)服务器端登录验证通过后,加载用户信息,然后发送用户ID和UUID到通信服务端生成消息键;(D)服务器端根据登录的用户ID和通信服务端返回的消息键生成消息会话;(E)服务端返回登录用户信息和消息会话到客户端,客户端本地存储消息会话;(F)客户端根据消息会话启动后台监听服务;(G)当用户数据发现变更时,服务器端发送数据所有者的相关用户ID和变更详情到通信服务端;(H)通信服务端根据用户ID和变更详情生成XXMP信息,然后发送XXMP通知客户端;(I)客户端与服务器端进行数据同步。2.根据权利要求1所述的一种基于XMPP协议的客户端与服...

【专利技术属性】
技术研发人员:余敬龙
申请(专利权)人:广东能龙教育股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1