一种多方同步计时的系统和方法

文档序号:8259906阅读:513来源:国知局
一种多方同步计时的系统和方法
【技术领域】
[0001]本发明属于网络同步计时技术领域,涉及网络中多方同步计时的系统和方法。
【背景技术】
[0002]电子商务不仅可以用来帮助实物商品的销售者和消费者达成交易,也可以帮助知识、技能、经验的拥有者与需求者达成交易,知识交易所包含的内容可能是帮助解决一个问题,或者完成一个任务,也可能是提供某个事情的咨询或者是教育培训。如果知识交易内容是问题解决或任务完成,知识交易一般采用按事情结果计费的方式,即按问题解决或任务完成付费;如果是提供某个事情的咨询或者是教育培训,知识交易一般采用按时计费。采用按时计费的知识交易在执行过程中,知识的拥有者与知识的消费者如果通过网络在线进行实时交流,系统需要对服务过程进行计时,计时数据将作为计时计费方式交易最终费用的主要依据。
[0003]对于知识交易的计时,有如下的要求:
[0004]1、交易过程中双方看到计时是同步的;
[0005]2、交易结束时,交易双方看到的计时数据是一致的;
[0006]3、交易任意一方无法在对方不知道的情况下启动和停止计时;
[0007]4、交易方网络中断等情况下,计时停止;
[0008]5、交易方重新连接到计时服务器,交易计时时长为断线前已经完成的计时时长;
[0009]现有的技术实现多方同步计时有如下方法:
[0010]1、计时服务器计时
[0011]计时服务器启动定时器,客户端每隔一个时间段去查询计时服务器计时数据,查到以后显示给用户。
[0012]这种方式的好处是所有客户端的计时均以计时服务器计时为主,计时服务器的计时不因某个客户端网络连接的中断而受影响。
[0013]这种即时方式存在的问题是某一方网络中断以后,计时服务器计时还在进行,一方的计时还在累加,而中断方计时则已经停止,导致双方对计时长短理解不一致。
[0014]2、客户端分别计时
[0015]以特定交易参与方计时为主,该交易参与方启动本地计时器,每隔一段时间对计时数据累加,并向计时服务器发送和其他参与方发送计时数据。这种计时的方式能快速响应本地客户端的启动、停止计时的操作。但存在计时服务器记录的计时数据与客户端的计时数据不一致的可能;
[0016]从现有技术来看,都存在各种问题,不适合于知识交易中多方同步计时。

【发明内容】

[0017]本发明的目的是提供一种多方同步计时的系统和方法,解决了知识交易中多方同步计时的问题。
[0018]为达到上述目的,本发明采用的技术方案是:
[0019]一种多方同步计时系统,包括与计时服务器相交互的数据库以及至少两个用户终端;
[0020]计时服务器向所有用户终端发送计时心跳消息,计时服务器收到所有的计时心跳消息的响应后,向所有计时服务器发送下一次的计时心跳消息;
[0021]每个用户终端每次收到计时心跳消息以后,向服务器发送计时心跳响应消息,显示心跳包含的计时时长;
[0022]数据库用于存放计时表,并存储计时时长。
[0023]所述计时服务器中设置有用于产生计时数据的计时定时器。
[0024]所述数据库中创建有计时表,计时表的字段包括计时号、计时时长、收到用户计时心跳响应标记以及收到其他用户计时心跳响应标记;计时号为每次计时的唯一识别号。
[0025]一种多方同步计时方法,包括以下步骤:
[0026]I)计时启动
[0027]1-1)当用户需要与其他至少一个用户进行会话时,该用户启动计时,向计时服务器发送开始计时的请求,计时服务器收到开始计时请求以后,创建一次计时会话,并设置初始计时时长为0,将计时号以及计时时长记录到数据库中;
[0028]1-2)计时服务器启动计时定时器;
[0029]1-3)计时服务器向其他用户发送计时心跳消息,其他用户将该计时心跳消息视为启动计时的通知消息;
[0030]1-4)计时服务器收到其他用户的计时心跳响应以后,在数据库中对其进行标记,使其他用户的计时标记在数据库中的状态为标记状态;
[0031]2)计时停止
[0032]当用户A需要停止计时,用户A向计时服务器发送停止计时消息,计时服务器收到停止计时消息以后,停止计时定时器;计时定时器停止以后,不再向其他用户发送计时心跳,其他用户的计时停止。
[0033]所述步骤1-1)中,用户A的计时标记在数据库中的状态为标记状态,其他用户的计时标记为清除状态。
[0034]当计时服务器的计时定时器超时时,采用以下方法处理:
[0035]计时服务器判断是否所有用户的计时标记都为标记状态,或者是否所有的用户都收到了计时心跳消息,并且计时服务器从所有的用户收到了计时心跳响应;如果不是所有用户的计时标记都为标记状态,则确定发生异常情况,有用户没有收到心跳,或者计时服务器没有收到心跳响应,此时计时服务器停止计时定时器,不再下发心跳消息,所有用户此时的计时处于停止状态,用户看到计时停止以后,采取相应停止会话的措施;
[0036]如果所有用户的计时标记都为标记状态,此时数据库中的计时时长累加,清除所有用户的计时标记,为下一次接收心跳响应做准备;计时服务器向所有的用户发送计时心跳,各用户收到计时心跳以后,显示新的计时时长。
[0037]所述计时服务器向所有用户发送的计时心跳中包含新的已经累加的计时时长。
[0038]所述异常情况为用户掉线、网络中断或计时服务器宕机;当用户掉线或网络中断时,计时服务器不能收到计时心跳响应,计时停止,计时时长保持在掉线前状态;当计时服务器宕机时,计时服务器不再发送计时心跳,计时停止,已经计时的时长已经写入数据库。
[0039]当停止计时后,用户能够通过手动方式恢复计时。
[0040]所述手动方式恢复计时的方法如下:
[0041]用户再次向计时服务器发送开始计时的请求,计时服务器收到开始计时请求以后,创建一次计时会话,并设置初始计时时长为上次计时数据。
[0042]与现有技术相比,本发明具有以下有益效果:
[0043]本发明通过计时服务器与用户端的多方同步计时系统和方法,能够实现交易方的计时保持同步累加;同时,在交易会话时,如果一方停止计时,另外一方也会立即停止;任何一方掉线,另外一方计时停止;最后,本发明通过在计时的同时,将计时数据存入数据库中,无论何种计时中止,已经计时的数据都不会丢失。
【附图说明】
[0044]图1为本发明多方同步计时系统的模块图;
[0045]图2为本发明计时启动的流程图;
[0046]图3为本发明计时停止的流程图;
[0047]图4为本发明计时定时器超时的处理流程图;
【具体实施方式】
[0048]下面结合附图对本发明做进一步详细描述:
[0049]参见图1至图4,本发明多方同步计时系统,包括与计时服务器相交互的数据库以及至少两个用户终端;
[0050]计时服务器向所有用户终端发送计时心跳消息,计时服务器收到所有的计时心跳消息的响应后,向所有计时服务器发送下一次的计时心跳消息;计时服务器中设置有用于产生计时数据的计时定时器。
[0051]每个用户终端每次收到计时心跳消息以后,向服务器发送计时心跳相应消息,显示心跳包含的计时时长;
[0052]数据库用于存放计时表,并存储计时时长。数据库中创建有计时表,计时表的字段包括计时号、计时时长、收到用户计时心跳响应标记以及收到其他用户计时心跳响应标记;计时号为每次计时的唯一识别号。
[0053]本发明还公开了一种多方同步计时方法,包括以下步骤:
[0054]I)计时启动
[0055]1-1)当用户需要与其他至少一个用户进行会话时,该用户启动计时,向计时服务器发送开始计时的请求,计时服务器收到开始计时请求以后,创建一次计时会话,并设置初始计时时长为0,将计时号以及计时时长记录到数据库中;用户A的计时标记在数据库中的状态为标记状态,其他用户的计时标记为清除状态。
[0056]1-2)计时服务器启动计时定时器;
[0057]1-3)计时服务器向其他用户发送计时心跳消息,其他用户将该计时心跳消息视为启动计时的通知消息;
[0058]1-4)计时服务器收到其他用户的计时心跳响应以后,在数据库中对其进行标记,使其他用户的计时标记在数据库中的状态为标记状态;
[0059]当计时服务器的计时定时器超时时,采用以下方法处理:
[0060]计时服务器判断是否所有用户的计时标记都为标记状态,或者是否所有的用户都收到了计时心跳消息,并且计时服务器从所有的用户收到了计时心跳响应;如果不是所有用户的计时标记都为标记状态,则确定发生异常情况,有用
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1