用于Flash播放器的本地时间检测方法及系统与流程

文档序号:15807302发布日期:2018-11-02 21:55阅读:501来源:国知局
用于Flash播放器的本地时间检测方法及系统与流程

本发明涉及时间检测领域,具体涉及一种用于flash播放器的本地时间检测方法及系统。

背景技术

flash播放器是一个exe的可执行程序,用于播放本地文件,flash播放器使用时,需要计时器来确定具有时效性的特定功能的开启、关闭或其他属性状态。对于时效性的特定功能而言,时间是否准确是保证该功能正常运行的核心因素,若时间不够准确,则该功能会非常容易产生错误。

目前,现有flash播放器一般使用客户端系统提供的本地计时器,系统在发生一些资源占用类操作时(例如cpu占用过高),会使得本地计时器变慢,进而导致flash播放器获取的错误时间。

与此同时,市面上还存在一些第三方的加速器,加速器会使得本地计时器变快或变慢,进而直接导致flash播放器获取的错误时间。例如,用户通过第三方加速器加快本地计时器,继而在非指定时间内完成时效性的特定功能(如提早开启指定时间才能开启的宝箱等)。

因此,现有的flash播放器获取的本地时间不够准确,不仅可能危害有关应用的运营商利益,而且进而降低了用户体验。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何判断flash播放器使用的本地时间是否正确。本发明不仅有效的保证了flash播放器上运行的应用的运营商利益,而且显著提高了用户体验,非常适于推广。

为达到以上目的,本发明提供的用于flash播放器的本地时间检测方法,包括以下步骤:

s1:当监测到flash播放器需要使用本地计时器时,统计flash播放器实时使用的本地计时器数量m,转到s2;

s2:判断m是否>0,若是,转到s3,否则结束;

s3:flash播放器与服务端建立连接,服务端定期向flash播放器返回服务端时间,转到s4;

s4:flash播放器获取服务端时间时,记录flash播放器实时使用的每个本地计时器的当前本地时间,判断每个本地计时器的当前本地时间,是否均与当前服务端时间匹配,若是,确定flash播放器运行正常,结束,否则确定flash播放器运行异常,结束。

本发明提供的用于flash播放器的本地时间检测系统,包括本地计时器监听模块、本地计时器统计模块、服务端时间获取模块和flash播放器检测模块;

本地计时器监听模块用于:当监测到flash播放器需要使用本地计时器时,统计flash播放器实时使用的本地计时器数量m,向本地计时器统计模块发送本地计时器统计信号;

本地计时器统计模块用于:收到本地计时器统计信号后,当判定m>0时,向服务端时间获取模块发送服务端时间获取信号;

服务端时间获取模块用于:收到服务端时间获取信号后,与服务端建立连接,获取服务端定期返回的服务端时间;获取服务端定期返回的服务端时间时,向flash播放器检测模块发送flash播放器检测信号;

flash播放器检测模块用于:收到flash播放器检测信号后,记录flash播放器实时使用的每个本地计时器的当前本地时间,判断每个本地计时器的当前本地时间,是否均与当前服务端时间匹配,若是,确定flash播放器运行正常,否则确定flash播放器运行异常。

与现有技术相比,本发明的优点在于:

(1)与现有技术中获取的本地时间不够准确的flash播放器相比,参见本发明的s1至s5可知,本发明在flash播放器使用本地计时器时,能够根据服务端时间对本地计时器进行检测,进而准确的确定flash播放器是否运营异常,不仅有效保证了flash播放器上运行的应用的运营商利益,而且显著提高了用户体验,非常适于推广。

与此同时,参见本发明s2可知,本发明通过被动触发的性质,仅当flash播放器正在使用本地计时器时(即m>0),才对本地计时器的时间进行检测,避免实时检测本地计时器,进而显著降低了cpu的消耗。

(2)本发明判定每个本地计时器的当前本地时间,均与当前服务端时间匹配的标准为:每个当前本地时间与当前服务端时间的误差,在指定阈值以内。因为服务端向flash播放器返回服务端时间时,服务端时间可能因为网络传输延迟的关系存在误差,本发明的指定阈值能够“抵消”掉误差,避免了因误差的原因而“错误确定”确定flash播放器运行异常,进而显著提高了工作质量。

(3)本发明实施例的flash播放器与服务端建立的是心跳连接,即服务器会定期向flash播放器发送服务端时间,而不是实时向flash播放器发送服务端时间,进一步降低了服务端和flash播放器本地的cpu消耗。

(4)本发明采用utc时间作为服务端时间,utc时间不会因为时区不一样而变化,即虽然同一时间点不同时区的当地时间不同,但是utc时间是不会发生变化。例如日本在东九时区,中国在东八时区,当服务器已utc0点为开启时效性特定功能的时间节点,则中国的用户会在北京时间8点开启,日本的用户会在东京9点开启。因此utc时间保证了全球用户的时间统一标准,进而不需要进行时区区别的时间调整,显著提高了用户体验。

附图说明

图1为本发明实施例中用于flash播放器的本地时间检测方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的用于flash播放器的本地时间检测方法,包括以下步骤:

s1:当监测到flash播放器需要使用本地计时器时,统计flash播放器实时使用的本地计时器数量m,转到s2。

s1的具体流程为:建立timermanager(本地计时器管理器),在timermanager中定义numtimer(变量标识,即flash播放器中存在的本地计数器数量)。flash播放器使用1个本地计时器时,将numtimer+1,flash播放器使用的本地计时器计时完成后,将numtimer-1,实现方式为:

timermanager:

add(){numtimer=numtimer+1};

subtract()(numtimer=numtimer-1);

getnumtimer():int{returnnumtimer};

其中getnumtimer为获取numtimer变量值的接口。

s2:判断m是否>0,若是,转到s3,否则结束。

s2目的为:通过被动触发的性质,仅当flash播放器正在使用本地计时器时,才对本地计时器的时间进行检测,避免实时检测本地计时器,进而显著降低了cpu的消耗。

s3:flash播放器与服务端建立连接,服务端定期向flash播放器返回服务端时间,转到s4。

s3的具体流程为:flash播放器与服务端建立心跳连接,flash播放器与服务端约定心跳消息数据包类型,当服务端返回的数据包符合心跳消息数据包的类型时,flash播放器获取并解析当前数据包,得到服务端时间。

通过s3可知,本发明实施例的flash播放器与服务端建立的是心跳连接,即服务器会定期向flash播放器发送服务端时间,而不是实时向flash播放器发送服务端时间,进而降低了服务端和flash播放器本地的cpu消耗。

与此同时,本发明实施例中的服务端时间为utc时间(universaltimecoordinated,世界统一时间),utc时间不会因为时区不一样而变化,即虽然同一时间点不同时区的当地时间不同,但是utc时间是不会发生变化。例如日本在东九时区,中国在东八时区,当服务器已utc0点为开启时效性特定功能的时间节点,则中国的用户会在北京时间8点开启,日本的用户会在东京9点开启。因此utc时间保证了全球用户的时间统一标准,进而不需要进行时区区别的时间调整,显著提高了用户体验。

s3中flash播放器与服务端的连接方式为websockt(浏览器双向通信)或sockt(双向通信),以sockt为例,s3的具体流程为:

soket=newsocket();

soket.addeventlistener(event.connect,onconnect);

socket.addeventlistener(progressevent.socket_data,

onserverdata,false,0,true);

soket.connnet(ip,post);

其中ip为服务端ip地址,post为服务端端口,onconnect为flash播放器连接服务端时的响应方法,onserverdata为flash播放器收到服务端推送消息的响应方法。在onserverdata中解析数据分析msgtype=socket.readutfbytes(4);读取前4个字节作为消息类型msgtype,与服务端约定好心跳消息类型为heartbeatmsg。若msgtype与heartbeatmsg相等则表明服务端发送过来的是心跳消息(即服务端时间)。

s4:flash播放器获取服务端时间时,记录flash播放器实时使用的每个本地计时器的当前本地时间,判断每个本地计时器的当前本地时间,是否均与当前服务端时间匹配,若是,则确定flash播放器运行正常,进行与本地时间有关的时效性特定功能,结束,否则确定flash播放器运行异常,转到s5。

s4中每个本地计时器的当前本地时间,均与当前服务端时间匹配的标准为:每个当前本地时间与当前服务端时间的误差,在指定阈值以内,指定阈值为15~30毫秒。该标准的原理为:服务端向flash播放器返回服务端时间时,服务端时间可能因为网络传输延迟的关系存在误差,为了避免因误差的原因而“错误确定”确定flash播放器运行异常,需要设计1个指定阈值来“抵消”掉误差,进而保证检测本地计时器的精准度,显著提高了工作质量。

s5:禁止flash播放器的使用,结束,具体流程为:在flash播放器的播放界面添加遮盖图层(默认为一个黑色的图片,遮盖图层的尺寸与播放尺寸相同,即遮盖图层需要整体覆盖于播放界面上),这样就可以避免用户继续操作flash播放器,最后提示用户当前系统时间异常影响到正常使用flash播放器,请调整系统时间后刷新页面重新使用flash播放器。

本发明实施例中的用于flash播放器的本地时间检测系统,包括本地计时器监听模块、本地计时器统计模块、服务端时间获取模块和flash播放器检测模块。

本地计时器监听模块用于:当监测到flash播放器需要使用本地计时器时,统计flash播放器实时使用的本地计时器数量m,向本地计时器统计模块发送本地计时器统计信号;

本地计时器统计模块用于:收到本地计时器统计信号后,当判定m>0时,向服务端时间获取模块发送服务端时间获取信号;

服务端时间获取模块用于:收到服务端时间获取信号后,与服务端建立连接,获取服务端定期返回的服务端时间(utc时间);获取服务端定期返回的服务端时间时,向flash播放器检测模块发送flash播放器检测信号。

服务端时间获取模块的具体工作流程为:与服务端建立心跳连接,与服务端约定心跳消息数据包类型,当服务端返回的数据包符合心跳消息数据包的类型时,获取并解析当前数据包,得到服务端时间。

flash播放器检测模块用于:收到flash播放器检测信号后,记录flash播放器实时使用的每个本地计时器的当前本地时间,判断每个本地计时器的当前本地时间,是否均与当前服务端时间匹配,匹配的标准为:每个当前本地时间与当前服务端时间的误差,在指定阈值以内,指定阈值为15~30毫秒;若是,确定flash播放器运行正常,否则确定flash播放器运行异常,在flash播放器的播放界面添加遮盖图层,遮盖图层的尺寸与播放尺寸相同。

参见本发明实施例可知,本发明实施例在flash播放器使用本地计时器时,能够根据服务端时间对本地计时器进行检测,进而准确的确定flash播放器是否运营异常,不仅有效保证了flash播放器上运行的应用的运营商利益,而且显著提高了用户体验,非常适于推广。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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