一种应用程序与服务器时间同步的方法及装置与流程

文档序号:11406431阅读:375来源:国知局
一种应用程序与服务器时间同步的方法及装置与流程

本发明涉及计算机应用技术领域,更具体地,涉及应用程序与服务器时间同步的方法及装置。



背景技术:

在应用程序包含的各种功能中,有许多运行时依赖时间的功能,如:在线礼包。在线礼包是指用户登录应用程序并在线一定时长便可领取一个礼包。用户的在线时长的计算取决于应用程序采用的时间基准。运行应用程序的终端具有终端时间,但该终端时间可以被随意修改。从而使得应用程序以终端时间作为时间基准,无法保证时间准确性。

现有技术中,一般通过将应用程序与为其提供数据服务的服务器进行时间同步,即应用程序以从服务器侧获取的服务器时间作为时间基准,来保证应用程序采用的时间基准的可靠性,进而保证应用程序上依赖时间的功能在正确的时间下运行。

在应用程序与服务器进行时间同步时,应用程序需要不断向服务器发送请求以获取准确的时间。当大量应用程序频繁向服务器请求服务器时间时,服务器可能因超负荷工作而奔溃。



技术实现要素:

本发明提供一种应用程序与服务器时间同步的方法及装置,以解决应用程序与服务器时间不同步的问题,进而保证应用程序中依赖时间的功能在正确的时间下运行。

根据本发明的一个方面,提供一种应用程序与服务器时间同步的方法,该方法包括:步骤1,在对本地存储服务器时间进行更新的过程中,对于当前更新周期,在所述当前更新周期的起始时刻,从服务器侧获取第一服务器时间作为本地存储服务器时间;步骤2,基于flash的帧频机制,对本地存储服务器时间进行更新;步骤3,将所述第一服务器时间与更新后的本地存储服务器时间进行比较,当两者间隔小于预设周期长度时,重复对本地存储服务器时间进行更新,当两者间隔等于预设周期长度时,进入下一更新周期。

根据本发明的另一个方面,提供一种应用程序与服务器时间同步的装置,包括:获取模块,在对本地存储服务器时间进行更新的过程中,对于当前更新周期,在所述当前更新周期的起始时刻,从服务器侧获取第一服务器时间作为本地存储服务器时间;更新模块,基于flash的帧频机制,对本地存储服务器时间进行更新;重复更新模块,将所述第一服务器时间与更新后的本地存储服务器时间进行比较,当两者间隔小于预设周期长度时,重复对本地存储服务器时间进行更新,当两者间隔等于预设周期长度时,进入下一更新周期。

本发明提出的应用程序与服务器时间同步的方法及装置,通过在更新周期内,基于flash的帧频机制,对获取的服务器时间进行更新,仅需在每个更新周期的起始时刻从服务器侧获取一次服务器时间,之后在该更新周期内,不再向服务器请求服务器时间,大大减小了向服务器请求服务器时间的频率,避免了服务器可能因超负荷工作而奔溃。

附图说明

图1为根据本发明实施例的一种应用程序与服务器时间同步的方法流程图;

图2为根据本发明实施例的一种应用程序与服务器时间同步的方法流程图;

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

如图1所示,根据本发明的一个方面,提供一种应用程序与服务器时间同步的方法。该方法包括:

步骤1,在对本地存储服务器时间进行更新的过程中,对于当前更新周期,在所述当前更新周期的起始时刻,从服务器侧获取第一服务器时间作为本地存储服务器时间;步骤2,基于flash的帧频机制,对本地存储服务器时间进行更新;步骤3,将所述第一服务器时间与更新后的本地存储服务器时间进行比较,当两者间隔小于预设周期长度时,重复对本地存储服务器时间进行更新,当两者间隔等于预设周期长度时,进入下一更新周期。

本发明提出的应用程序与服务器时间同步的方法及装置,通过在更新周期内,基于flash的帧频机制,对获取的服务器时间进行更新,仅需在每个更新周期的起始时刻从服务器侧获取一次服务器时间,之后在该更新周期内,不再向服务器请求服务器时间,大大减小了向服务器请求服务器时间的频率,避免了服务器可能因超负荷工作而奔溃。

作为一种可选实施例,所述步骤2进一步包括:基于flash的帧频机制,进行帧事件监听;当监听到帧事件时,对本地存储服务器时间进行更新。

作为一种可选实施例,所述基于flash的帧频机制,进行帧事件监听进一步包括:通过创建的显示对象,基于flash的帧频机制,对应用程序进行帧事件监听。

作为一种可选实施例,所述当监听到帧事件时,对本地存储服务器时间进行更新进一步包括:在所述当前更新周期内,所述监听到帧事件为首次监听到帧事件时,基于所述第一服务器时间,对本地存储服务器时间进行更新。

作为一种可选实施例,所述基于所述第一服务器时间,对本地存储服务器时间进行更新进一步包括:获取从应用程序启动至获取第一服务器时间之间的第一时间间隔;获取从应用程序启动至监听到帧事件之间的第二时间间隔;将所述第二时间间隔和所述第一时间间隔之差,累加至所述第一服务器时间作为更新后的本地存储服务器时间。

作为一种可选实施例,所述当监听到帧事件时,对本地存储服务器时间进行更新还包括:在所述当前更新周期内,所述监听到帧事件为非首次监听到帧事件时,基于上一次监听到帧事件时更新的本地存储服务器时间,对本地存储服务器时间进行更新。

作为一种可选实施例,所述基于上一次监听到帧事件时更新的本地存储服务器时间,对本地存储服务器时间进行更新进一步包括:获取从应用程序启动至上一次监听到帧事件之间的第三时间间隔;获取从应用程序启动至所述监听到帧事件之间的第四时间间隔;将所述第四时间间隔和所述第三时间间隔之差,累加至上一次监听到帧事件时更新的本地存储服务器时间作为更新后的本地存储服务器时间。

作为一种可选实施例,基于flashapi提供的gettimer()方法获取所述时间间隔。

作为一种可选实施例,基于flash的帧频机制,每一帧或多帧执行一次帧事件监听。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

基于上述图1对应实施例提供的方法,在本地存储的服务器时间进行更新的过程中,以第一个更新周期当前更新周期,本发明实施例提供了一种应用程序与服务器时间同步的方法。该方法包括:

101,对于第一个更新周期,在所述第一个更新周期的起始时刻,从服务器侧获取第一服务器时间作为本地存储服务器时间;

102基于flash的帧频机制,对本地存储服务器时间进行更新;

103,将所述第一服务器时间与更新后的本地存储服务器时间进行比较,当两者间隔小于预设周期长度时,重复对本地存储服务器时间进行更新,当两者间隔等于预设周期长度时,进入下一更新周期。

其中,101,对于第一个更新周期,在所述第一个更新周期的起始时刻,从服务器侧获取第一服务器时间作为本地存储服务器时间。

对本地存储服务器时间开始更新的时刻本实施例不做限定,包括但不限于:从启动基于flash语言开发的应用程序时开始更新。启动应用程序,进入第一个更新周期,应用程序向服务器发送请求。其中,所述服务器为向该应用程序提供数据服务的服务器;所述请求为获取第一服务器时间的请求。服务器接收请求后,将第一服务器时间戳发送给应用程序。应用程序根据第一服务器时间戳获取第一服务器时间,并将第一服务器时间作为本地存储服务器时间保存到本地。保存的程序实现过程为:根据应用程序中的时钟类clockmanager包含的setdate()方法,将第一服务器时间servertime,赋值给时钟类clockmanager中的全局变量serverdate:date中的本地存储服务器时间serverdate.time。具体为:根据setdate(servertime)方法实现serverdate.time=servertime。

其中,102,基于flash的帧频机制,对本地存储服务器时间进行更新。

对所述本地存储服务器时间进行更新的方法本实施例不做限定,包含但不限于:基于flash的帧频机制,进行帧事件监听;当监听到帧事件时,对所述本地存储服务器时间进行更新。

基于flash的帧频机制,进行帧事件监听具体为在第一个更新周期内,利用应用程序中的时间管理类timermanager对所述应用程序进行帧事件监听。其中,执行监听的频率可以根据需要设置,本实施例对此不作限定,包括但不限于:每一帧或多帧执行一次。若每帧执行一次,那么每隔一帧的时间,可监听到一个帧事件。在具体监听过程中,时间管理类timermanager通过创建显示对象监听帧事件event.enter_frame。对显示对象的选择本实施例不做限定,包含但不限于:占内存最小的显示对象shape。时间管理类timermanager通过创建的显示对象shape监听帧事件event.enter_frame的代码如下:

在第一个更新周期内,第一次监听到帧事件时,对所述本地存储服务器时间进行更新的方法本实施例不做限定,包括但不限于:采用指定回调函数onenterframe实现所述本地存储服务器时间的更新。也就是,通过指定回调函数onenterframe,执行update()方法。在监听到帧事件时,指定回调函数onenterframe实现本地存储服务器时间更新的代码如下:

在第一个更新周期内,第一次监听到帧事件时,利用update()方法更新本地存储服务器时间的过程具体为:利用flashapi提供的gettimer(),获取应用程序启动至第一次监听到帧事件时的时间间隔curtime,获取应用程序启动至上一次监听到帧事件时的时间间隔lasttime(在第一个更新周期内第一次监听到帧事件时时,该值为0);将curtime与lasttime的差值,累加到第一服务器时间上作为本地存储服务器时间,实现本地存储服务器时间的更新。并将curtimer赋值给lasttime,以供下次更新使用。利用update()方法更新本地存储服务器时间的代码为:

varoffsettime:int=curtime-lasttime;

serverdate.time+=offsettime;

lasttime=curtime;

由上可知lasttime为0,假设curtime为0.1s,假设第一服务器时间为10点整,则更新后的本地存储服务器时间为10点零0.1秒。

其中,103,将所述第一服务器时间与更新后的本地存储服务器时间进行比较,当两者间隔小于预设周期长度时,重复对本地存储服务器时间进行更新,当两者间隔等于预设周期长度时,进入下一更新周期。

预设周期长度可以根据需要设定,本实施例对此不作限定。假设预设周期长度为20s。由于第一服务器时间10点整与更新后的本地存储服务器时间为10点零0.1秒的间隔小于预设周期长度为20s,因此,需重复步骤102对本地存储服务器时间进行更新,即重复步骤102对更新后的本地存储服务器时间10点零0.1秒进行更新。

按照步骤102,基于flash的帧频机制,进行帧事件监听的具体方法如前所述,在此不再复述。

在第一个更新周期内,基于flash的帧频机制,进行帧事件监听,第二次监听到帧事件时,通过指定回调函数onenterframe,执行update()方法。此次利用update()方法更新本地存储服务器时间的过程具体为:利用flashapi提供的gettimer(),获取应用程序启动至第二次监听到帧事件时的时间间隔curtime,获取应用程序启动至上一次监听到帧事件时的时间间隔lasttime(即应用程序启动至第一次监听到帧事件时的时间间隔);将curtime与lasttime的差值,累加到上一次监听到帧事件时更新的本地存储服务器时间上作为更新后的本地存储服务器时间,实现本地存储服务器时间的更新。并将curtimer赋值给lasttime,以供下次更新使用。

由于任一两帧之间时间间隔相同,在第一个更新周期内,第一次监听到帧事件时,假设的curtime为0.1s,可知,在第一个更新周期内,第二次监听到帧事件时,lasttime为0.1s,curtime为0.2s。由于在第一个更新周期内,第一次监听到帧事件时更新的本地存储服务器时间为10点零0.1秒,则第二次监听到帧事件时,更新的本地存储服务器时间为10点零0.2秒。

由于第一服务器时间10点整与更新后的本地存储服务器时间10点零0.2秒的间隔小于预设周期长度,需再次重复步骤102对本地存储服务器时间进行更新,更新方法如上所述,在此不再复述。

当更新后的本地存储服务器时间为10点零20秒时,第一服务器时间10点整与更新后的本地存储服务器时间为10点零20秒的间隔等于预设周期长度20秒。因此,可以进入下一更新周期。下一更新周期内,对本地存储服务器时间的具体更新过程与第一个更新周期内,对本地存储服务器时间的具体更新过程雷同,在此不再复述。

如图2所示,根据本发明的另一个方面,提供一种应用程序与服务器时间同步的装置。该装置包括:获取模块,在对本地存储服务器时间进行更新的过程中,对于当前更新周期,在所述当前更新周期的起始时刻,从服务器侧获取第一服务器时间作为本地存储服务器时间;更新模块,基于flash的帧频机制,对本地存储服务器时间进行更新;重复更新模块,将所述第一服务器时间与更新后的本地存储服务器时间进行比较,当两者间隔小于预设周期长度时,重复对本地存储服务器时间进行更新,当两者间隔等于预设周期长度时,进入下一更新周期。

本发明提出的应用程序与服务器时间同步的装置,通过更新模块,在更新周期内,基于flash的帧频机制,对获取的服务器时间进行更新,仅需在每个更新周期的起始时刻从服务器侧获取一次服务器时间,之后在该更新周期内,不再向服务器请求服务器时间,大大减小了向服务器请求服务器时间的频率,避免了服务器可能因超负荷工作而奔溃。

作为一种可选实施例,所述更新模块包括:监听单元和更新单元;所述监听单元,用于基于flash的帧频机制,进行帧事件监听;所述更新单元,用于当监听到帧事件时,对所述本地存储服务器时间进行更新。

作为一种可选实施例,所述监听单元具体用于通过创建的显示对象,基于flash的帧频机制,对应用程序进行帧事件监听。

作为一种可选实施例,所述更新单元具体用于在所述当前更新周期内,所述监听到帧事件为首次监听到帧事件时,在所述当前更新周期内,所述监听到帧事件为首次监听到帧事件时,基于所述第一服务器时间,对本地存储服务器时间进行更新。

作为一种可选实施例,所述更新单元进一步具体用于获取从应用程序启动至获取第一服务器时间之间的第一时间间隔;获取从应用程序启动至监听到帧事件之间的第二时间间隔;将所述第二时间间隔和所述第一时间间隔之差,累加至所述第一服务器时间作为更新后的本地存储服务器时间。

作为一种可选实施例,所述更新单元具体还用于在所述当前更新周期内,所述监听到帧事件为非首次监听到帧事件时,基于上一次监听到帧事件时更新的本地存储服务器时间,对本地存储服务器时间进行更新。

作为一种可选实施例,所述更新单元进一步具体还用于获取从应用程序启动至上一次监听到帧事件之间的第三时间间隔;获取从应用程序启动至所述监听到帧事件之间的第四时间间隔;将所述第四时间间隔和所述第三时间间隔之差,累加至上一次监听到帧事件时更新的本地存储服务器时间作为更新后的本地存储服务器时间。

最后,本发明的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1