事件同步的方法、系统、客户端和服务端的制作方法

文档序号:7746075阅读:159来源:国知局
专利名称:事件同步的方法、系统、客户端和服务端的制作方法
技术领域
本发明涉及计算机技术领域,具体涉及一种事件同步的方法、系统、客户端和服务端。
背景技术
客户端和服务端是通过HTTP (hypertext transfer protocol,超文本传输协议) 通信。在实际运用中,客户端需要实时获取服务端的数据,比如,网管软件中的管理对象的告警呈现,用户需要在告警发生后的最短时间内在用户界面观察到告警发生,及时的修复
告警故障。目前,实时获取服务端的最新数据,实现客户端与服务端事件同步的现有技术解决方案有两种。现有技术一是客户端在页面中设置定时器;客户端每隔一定的时间发出获取服务度最新数据的请求;每发一次请求,服务端都返回相应的数据,客户端根据服务端返回的信息,更新页面显示,从而实现客户端和服务端事件的同步。现有技术二是客户端发起一个长时间激活的HTTP长连接请求给服务端,服务端执行一个长循环,保持请求不关闭;当服务端事件发生状态变化时,通过这个连接将数据推送到往外的串流中,并刷新到客户端前台页面,客户端根据接获取的服务端推送的最新数据,解析这些最新数据,从而实现客户端和服务端的事件同步。在对现有技术的实践和研究过程中,本发明的发明人发现,现有技术一通过周期性发送请求获取服务端最新的数据,如果服务端数据没有发生变化,也按照定时器不停的发送请求,这些无效的请求会消耗客户端和服务端的性能和资源,另外,周期性发送请求无法满足某些实时性比较高的模块的需求,由于多个功能你模块需要发送实时请求,需要多个定时器进行周期性刷新操作,占用客户端资源,影响整个客户端的执行效率。现有技术二的HTTP长连接占用服务端的连接数,影响其他正常的界面请求,HTTP长连接在当前主流服务端中的连接超时机制下无法实施;在不同的客户端浏览器中对长连接状态处理不一致, IE等浏览器的下端进度栏都会显示加载没有完成,用户体验不好,此外HTTP1. 1规范中规定,客户端不能与服务端建立超过两个HTTP连接,否则新的连接会被阻塞,使用局限性较大。

发明内容
本发明实施例提供一种事件同步的方法,包括发送最新数据获取请求;通过与服务端的套接字连接,接收服务端发送的事件标识;根据接收到的所述事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数,执行回调函数指示的同步操作。相应地,还提供一种事件同步的方法,包括生成事件标识;
3
根据生成的事件标识,更新服务端套接字对象的事件;通过与客户端的套接字连接,发送告警信息的事件标识给客户端。一种与服务端数据同步的系统,包括客户端,用于发起最新数据获取请求,通过与服务端的套接字连接,接收服务端发送的事件标识,遍历已注册的监听器,根据所述事件标识,匹配监听所述事件的监听器,调用与该事件对应的回调函数,执行回调函数指示的同步操作;服务端,用于生成事件标识,根据生成的事件标识,更新套接字对象的事件,通过与客户端的套接字连接,发送事件标识给客户端。一种客户端,包括请求模块,用于发送最新数据获取请求;接收模块,用于通过与服务端的套接字连接,接收服务端发送的事件标识;前台事件模块,根据所述事件标识,匹配监听所述事件的监听器,调用与该事件对应的回调函数,执行回调函数指示的同步操作。一种服务端,包括功能服务模块,用于生成事件标识;事件更新模块,用于根据生成的事件标识,更新套接字对象的事件;告警发送模块,用于通过与客户端的套接字连接,发送事件标识给客户端。本发明实施例通过发起最新数据获取请求,根据接收发自服务端的事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数。在服务端发生状态变化时,可以及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,也不会影响客户端浏览器的显示情况。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明事件同步方法的第一实施例流程图;图2是本发明事件同步方法的第二实施例流程图;图3是本发明事件同步方法的第三实施例流程图;图4是本发明实施例提供的客户端的结构示意图;图5是本发明实施例提供的服务端的结构示意图;图6是本发明实施例提供的事件同步系统的结构示意图;图7是本发明应用场景的流程示意图。
具体实施例方式本发明实施例提供一种能及时实现客户端与服务端数据同步的事件同步的方法、 系统、客户端和服务端。以下分别进行详细说明。
本发明实施例一的事件同步的方法的流程图可参考图1,该方法主要包括步骤101,客户端发送最新数据获取请求给服务端。步骤102,客户端接收服务端发送的事件标识。在服务端事件发生变化时,服务端通过更新套接字对象的事件,发送事件标识给客户端。客户端接收服务端发送的事件标识。步骤103,客户端根据接收到的所述事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数,执行回调函数指示的同步操作。在客户端接收到服务端发送的事件标识后,遍历所有已经注册的监听器,查找关心该事件标识的事件的监听器,调用与所述事件匹配的回调函数,执行回调函数指示的同步操作,从而达到客户端和服务端数据的同步。本发明实施例通过发起最新数据获取请求,根据接收发自服务端的事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数。在服务端发生状态变化时,可以及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,也不会影响客户端浏览器的显示情况。为便于理解,下面对本发明实施例中的事件同步的方法进行详细描述,请参阅图 2,本发明事件同步的方法第二实施例。该事件同步的方法包括步骤201,客户端接受各个页面模块注册事件监听器。各个监听器关心不同的事件,在服务端事件发生告警或更新,通知到客户端时,客户端找到关心该事件的监听器,就可以调用相应处理该事件的回调函数。步骤202,客户端建立与服务端的套接字连接。客户端可以内嵌flash小程序,通过flash小程序建立与服务端向客户端主动发送消息的flash通信通道,可以采用通过flash小程序建立与服务端的套接字连接的方法建立这个反向通信通道。步骤203,客户端发送最新数据获取请求给服务端。步骤204,客户端接收服务端发送的事件标识;在服务端事件发生更新或告警时,服务端会更新服务端套接字对象的事件从而通过flash小程序建立的套接字连接发送事件标识给客户端,客户端的flash小程序接收到事件标识。步骤205,客户端获取服务器发送的事件标识后,根据接收到的所述事件标识,查找监听所述事件标识的事件的监听器,匹配相应的监听器,调用与所述事件对应的回调函数。本发明实施例通过发起最新数据获取请求,根据接收发自服务端的事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数。在服务端发生状态变化时,可以及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,也不会影响客户端浏览器的显示情况。本发明实施例三的事件同步的方法可参考图3,该方法由服务端执行,主要包括
步骤301,服务端生成事件标识。在客户端建立了与服务端的套接字连接后,若服务端的功能模块发生告警,就会生成告警的事件标识。步骤302,根据生成的事件标识,更新套接字对象的事件。步骤303,通过与客户端的套接字连接,发送事件标识给客户端。本发明实施例通过发起最新数据获取请求,根据接收发自服务端的事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数。在服务端发生状态变化时,可以及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,也不会影响客户端浏览器的显示情况。下面对用于执行上述客户端进行说明,其结构示意图参考图4。该客户端4包括请求模块41,用于发送最新数据获取请求。接收模块42,用于接收服务端发送的事件标识。前台事件模块43,根据所述事件标识,匹配监听所述事件的监听器,调用与该事件对应的回调函数。优选的,所述前台事件模块43还用于注各个页面模块的监听器。在客户端接收到事件标识后,通过查找关心事件标识的事件的监听器,就可以调用相应的回调函数来处理。优选的,所述客户端还包括连接模块44,用于建立与服务器的套接字连接。客户端的连接模块内嵌一个flash小程序,通过这个flash小程序建立与服务端的套接字连接。 这个连接可以实现服务端到客户端反向发送消息。本发明实施例通过发起最新数据获取请求,根据接收发自服务端的事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数。在服务端发生状态变化时,可以及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,也不会影响客户端浏览器的显示情况。下面对执行事件同步的方法的服务端进行说明,该服务端5包括功能服务模块51,用于在服务端的事件告警或更新时,生成事件标识。事件更新模块52,用于根据生成的事件标识,更新套接字对象的事件;告警发送模块53,用于通过与客户端的套接字连接,发送事件标识给客户端。本发明实施例通过发起最新数据获取请求,根据接收发自服务端的事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数。在服务端发生状态变化时,可以及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,也不会影响客户端浏览器的显示情况。下面对事件同步的系统进行说明,该与服务端数据同步的系统包括服务端5,用于生成事件的事件标识,根据生成的事件的事件标识,更新套接字对象的事件,通过与客户端的套接字连接,发送事件标识给客户端。客户端4,用于发送最新数据获取请求给服务端5,接收服务端5发送的事件标识,遍历已注册的监听器,根据所述事件标识,匹配监听所述事件的监听器,调用与该事件对应的回调函数,执行回调函数指示的同步操作。优选的,该客户端4还用于建立与服务端的套接字连接,注册关心各事件的监听
ο为便于理解,下面以具体的应用场景对上述实施例进行详细描述,本应用场景以网管系统中的告警列表展示为例,参见图7。步骤701,网管服务端正常启动,完成事件告警功能模块的加载和启动,完成管理对象的接入和管理。步骤702,用户登录网管系统,客户端呈现网管界面首页信息。步骤703,客户端加载首页信息,初始化前台事件模块。步骤704,客户端接受各个页面模块注册事件监听器。步骤705,客户端加载flash小程序,客户端通过flash小程序建立与服务端套接字连接,从而通过这个连接获得服务端的消息。步骤706,客户端注册关心服务端事件告警信息的各个回调函数。回调函数指示事件更新或告警时客户端所应该执行的同步操作。步骤707,客户端发送最新数据获取请求给服务端,告警页面正常请求服务端获取当前告警数据呈现用户界面。步骤708,服务端告警功能模块发送设备上报信的事件标识,发出有新告警上报的事件给服务端事件更新模块,事件更新模块通过更新服务端套接字对象的事件,发送事件标识给客户端flash小程序。步骤709,客户端flash小程序通过套接字连接获得服务端的事件标识。步骤710,客户端调用事件管理模块,查找与事件标识匹配的关心当前事件的监听器,调用对应的回调函数,执行回调函数指示的同步操作,从而达到服务端与客户端数据的同步。在回调函数被执行后,完成了一次同步操作,客户端和服务端达到了事件同步,回到步骤707,客户端重新发起最新数据请求给服务端,在服务端有新的告警信息的时候,客户端再更新用户界面呈现最新告警信息。有新的告警信息发生时,重复以上事件同步方法的步骤707到步骤710。本发明除了应用于上述网管系统还可以运用于监控系统、即时通信系统等实时性要求比较高的服务端客户端系统。本发明实施例通过发起最新数据获取请求,根据接收发自服务端的事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数。在服务端发生状态变化时,可以及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,也不会影响客户端浏览器的显示情况。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括ROM、RAM、磁盘或光盘等。以上对本发明实施例所提供的一种事件同步的方法、系统、客户端和服务端进行
7了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员, 依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种事件同步的方法,其特征在于,包括 发送最新数据获取请求;通过与服务端的套接字连接,接收服务端发送的事件标识;根据接收到的所述事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数,执行回调函数指示的同步操作。
2.如权利要求1的服务端数据同步方法,其特征在于,在所述注册各个页面模块的监听器之前还包括建立与服务器的套接字连接。
3.如权利要求2的服务端数据同步方法,其特征在于,在所述建立与服务器的套接字连接之前,还包括注册监听各个事件的监听器。
4.一种事件同步的方法,其特征在于,包括 生成事件标识;根据生成的事件标识,更新服务端套接字对象的事件; 通过与客户端的套接字连接,发送告警信息的事件标识给客户端。
5.一种客户端,其特征在于,包括 请求模块,用于发送最新数据获取请求;接收模块,用于通过与服务端的套接字连接,接收服务端发送的事件标识; 前台事件模块,根据所述事件标识,匹配监听所述事件的监听器,调用与该事件对应的回调函数,执行回调函数指示的同步操作。
6.如权利要求5所述的客户端,其特征在于,所述前台事件模块还用于注册监听各个事件的监听器。
7.如权利要求6所述的客户端,其特征在于,所述客户端还包括 连接模块,用于建立与服务器的套接字连接。
8.一种服务端,其特征在于,包括 功能服务模块,用于生成事件标识;事件更新模块,用于根据生成的事件标识,更新套接字对象的事件; 告警发送模块,用于通过与客户端的套接字连接,发送事件标识给客户端。
9.一种事件同步的系统,其特征在于,包括客户端,用于发起最新数据获取请求,通过与服务端的套接字连接,接收服务端发送的事件标识,遍历已注册的监听器,根据所述事件标识,匹配监听所述事件的监听器,调用与该事件对应的回调函数,执行回调函数指示的同步操作;服务端,用于生成事件标识,根据生成的事件标识,更新套接字对象的事件,通过与客户端的套接字连接,发送事件标识给客户端。
10.如权利要求9所述的与服务端数据同步的系统,其特征在于,所述客户端还用于建立与服务端的套接字连接。
全文摘要
本发明公开了一种事件同步的方法、系统、客户端和服务端,本发明实施例发送最新数据获取请求,通过与服务端的套接字连接,接收服务端发送的事件标识,根据接收到的所述事件标识,匹配监听所述事件标识的事件的监听器,调用与所述事件对应的回调函数,执行回调函数指示的同步操作,实施本发明实施例,能够及时返回相应的数据给客户端,客户端无需设定定时器周期性反复发送请求给服务端,提高了客户端和服务端的效率。避免了长连接加载未完成的用户体验,不会影响客户端浏览器的显示情况。
文档编号H04L29/08GK102215243SQ201010146538
公开日2011年10月12日 申请日期2010年4月12日 优先权日2010年4月12日
发明者黄智 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1