一种实时同步方法和装置制造方法及图纸

技术编号:15653378 阅读:262 留言:0更新日期:2017-06-17 07:55
本发明专利技术公开了一种实时同步方法和装置。在客户端侧执行,所述方法包括:通过Websocket协议和服务器建立长连接;基于长连接,向服务器发送针对数据对象的订阅请求;接收服务器根据订阅请求返回的数据对象的更新信息以及随更新信息一同返回的服务器的当前时间信息。在服务器侧执行,所述方法包括:通过Websocket协议和客户端建立长连接;基于长连接,接收客户端针对数据对象的订阅请求;根据订阅请求,在更新数据对象对应的信息之后,将数据对象的更新信息返回给客户端,并将当前时间信息随更新信息一同返回给客户端。本发明专利技术通过长连接避免客户端对服务器进行无效轮询,客通过订阅的方式从服务器获得更新信息以及时间信息,实现了数据同步和时间同步。

【技术实现步骤摘要】
一种实时同步方法和装置
本专利技术涉及通信
,特别是涉及一种实时同步方法和装置。
技术介绍
目前,在许多应用场景中要求客户端和服务器持续同步,以便客户端及时获得服务器侧的最新数据。例如:社交网络、实时竞拍、股价查询等应用场景都要求客户端可以及时获得服务器侧更新的数据。然而,关于实时同步的相关开源技术较少,如果要基于终端APP(Application,应用程序)提供实时同步服务,需要单独开发一套动态、可扩展的实时同步系统,但是成本较高。现有的实时同步基本通过轮询的方式实现。以实时竞拍为例,终端侧的客户端根据竞拍状态的改变调用终端API(ApplicationProgrammingInterface,应用程序编程接口)轮询服务器,从服务器获取最新的竞拍数据,以便同步更新终端侧的用户界面,并且,在此过程中,客户端还需适时地获取服务端的时间,将客户端本地的时间同步为与服务器相同,进而实现客户端的计时系统与服务器的时间同步。但是,轮询为单工通信,轮询需要客户端不断地向服务器发出HTTP(HyperTextTransferProtocol,超文本传输协议)请求,服务器仅在更新数据之后向客户端返回最新的数据。客户端大量轮询服务器,而服务器并不是总有数据更新,这样就造成客户端向服务器发送了大量的不必要的请求,造成浪费流量的同时给服务器增加了压力;而且客户端和服务器分别进行倒计时,如果客户端从服务器获取时间的过程中,出现网络信号质量较差、数据传输拥堵、客户端对时间的处理响应速度慢等问题,将会使客户端和服务器之间出现时间误差,客户端和服务器时间不同步,数据实时性较差。专
技术实现思路
本专利技术一种实时同步方法和装置,用以解决现有同步方式会造成客户端向服务器发送了大量的不必要的请求且实时性差的问题。针对上述技术问题,本专利技术是通过以下技术方案来解决的:本专利技术提供了一种实时同步方法,在客户端侧执行,所述方法包括:通过Websocket协议和服务器建立长连接;基于所述长连接,向所述服务器发送针对数据对象的订阅请求;接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。其中,所述方法还包括:如果距离上一次接收到所述服务器返回的更新信息的时间达到预设时长,则每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。其中,所述方法还包括:在向所述服务器发送心跳包之后,如果未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。本专利技术提供了一种实时同步方法,在服务器侧执行,所述方法包括:通过Websocket协议和客户端建立长连接;基于所述长连接,接收所述客户端针对数据对象的订阅请求;根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,以使所述客户端和所述服务器数据同步且时间同步。其中,所述方法还包括:在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。本专利技术还提供了一种实时同步装置,设置在客户端侧,所述装置包括:第一连接模块,用于通过Websocket协议和服务器建立长连接;第一发送模块,用于基于所述长连接,向所述服务器发送针对数据对象的订阅请求;第一接收模块,用于接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。其中,所述第一发送模块,还用于:在距离上一次接收到所述服务器返回的更新信息的时间达到预设时长的情况下,每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。其中,所述第一连接模块还用于:在所述第一发送模块向所述服务器发送心跳包之后,如果所述第一接收模块未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。本专利技术还提供了一种实时同步装置,设置在服务器侧,所述装置包括:第二连接模块,用于通过Websocket协议和客户端建立长连接;第二接收模块,用于基于所述长连接,接收所述客户端针对数据对象的订阅请求;第二发送模块,用于根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,以使所述客户端和所述服务器数据同步且时间同步。其中,所述第二发送模块,还用于在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。本专利技术有益效果如下:本专利技术的客户端和服务器基于Websocket协议建立长连接,客户端和服务器基于该长连接可以进行双工通信,避免客户端对服务器进行无效轮询。在长连接建立之后,客户端通过订阅的方式从服务器获得数据对象的更新信息以及服务器的当前时间信息,获得的更新信息和时间信息更具时效性,进而可以实现客户端和服务器之间的数据同步和时间同步。附图说明图1是根据本专利技术第一实施例的实时同步方法的流程图;图2是根据本专利技术第二实施例的实时同步方法的流程图;图3是根据本专利技术第三实施例的实时同步方法的示意图;图4是根据本专利技术第四实施例的实时同步方法的流程图;图5是根据本专利技术第五实施例的实时同步装置的结构图;图6是根据本专利技术第六实施例的实时同步装置的结构图。具体实施方式本专利技术基于Websocket协议,在客户端和服务器之间建立长连接;基于该长连接,服务器向客户端发送数据对象的更新信息,保证客户端和服务器之间的数据同步;基于该长连接服务器向客户端发送服务器的当前时间信息,包含客户端和服务器之间的时间同步。WebSocket是HTML5的一种协议。WebSocket可以实现客户端与服务器之间的全双工通信(full-duplex),使客户端和服务器进行实时通信。进而通过本专利技术减少了客户端对服务器的无效轮询,避免了客户端向服务器发送大量的不必要的请求,并且解决了客户端和服务器之间实时性差的问题。以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。实施例一本实施例提供一种在客户端侧执行的实时同步方法。图1是根据本专利技术第一实施例的实时同步方法的流程图。本实施例的执行主体为客户端。该客户端例如为浏览器客户端。步骤S110,基于Websocket协议和服务器之间建立长连接。长连接是指通信双方在一个连接上可以连续发送多个数据包。进一步地,该长连接为套接字Socket连接。长连接的建立过程为客户端和服务器的握手过程。客户端向服务器发起握手请求,服务器对该握手请求进行响应,客户端和服务器之间的长连接建立完成。进一步地,该建立过程可以借助HTTP(HyperTextTransferProtocol,超文本传输协议)请求来完成。步骤S120,基于所述长连接,向所述服务器发送针对数据对象的订阅请求。数据对象是指具有一组不同性质或者属性的事物。该事物可以是实体对象的抽象。例如:数据对象为一辆汽车,可以通过该汽车的属性来描述该汽车。订阅请求用于请求服务器在数据对象的信息发生本文档来自技高网
...
一种实时同步方法和装置

【技术保护点】
一种实时同步方法,其特征在于,在客户端侧执行,所述方法包括:通过Websocket协议和服务器建立长连接;基于所述长连接,向所述服务器发送针对数据对象的订阅请求;接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。

【技术特征摘要】
1.一种实时同步方法,其特征在于,在客户端侧执行,所述方法包括:通过Websocket协议和服务器建立长连接;基于所述长连接,向所述服务器发送针对数据对象的订阅请求;接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。2.如权利要求1所述的方法,其特征在于,所述方法还包括:如果距离上一次接收到所述服务器返回的更新信息的时间达到预设时长,则每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。3.如权利要求2所述的方法,其特征在于,所述方法还包括:在向所述服务器发送心跳包之后,如果未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。4.一种实时同步方法,其特征在于,在服务器侧执行,所述方法包括:通过Websocket协议和客户端建立长连接;基于所述长连接,接收所述客户端针对数据对象的订阅请求;根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,以使所述客户端和所述服务器数据同步且时间同步。5.如权利要求4所述的方法,其特征在于,所述方法还包括:在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。6.一种实时同步装置,其特征在于,设置在客户端侧,所述装置包括:第一连接模块,用于通过...

【专利技术属性】
技术研发人员:周洲
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:北京,11

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

1