CN106850745B - 一种实时同步方法和装置 - Google Patents
一种实时同步方法和装置 Download PDFInfo
- Publication number
- CN106850745B CN106850745B CN201611202314.5A CN201611202314A CN106850745B CN 106850745 B CN106850745 B CN 106850745B CN 201611202314 A CN201611202314 A CN 201611202314A CN 106850745 B CN106850745 B CN 106850745B
- Authority
- CN
- China
- Prior art keywords
- server
- client
- information
- current time
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种实时同步方法和装置。在客户端侧执行,所述方法包括:通过Websocket协议和服务器建立长连接;基于长连接,向服务器发送针对数据对象的订阅请求;接收服务器根据订阅请求返回的数据对象的更新信息以及随更新信息一同返回的服务器的当前时间信息。在服务器侧执行,所述方法包括:通过Websocket协议和客户端建立长连接;基于长连接,接收客户端针对数据对象的订阅请求;根据订阅请求,在更新数据对象对应的信息之后,将数据对象的更新信息返回给客户端,并将当前时间信息随更新信息一同返回给客户端。本发明通过长连接避免客户端对服务器进行无效轮询,客通过订阅的方式从服务器获得更新信息以及时间信息,实现了数据同步和时间同步。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种实时同步方法和装置。
背景技术
目前,在许多应用场景中要求客户端和服务器持续同步,以便客户端及时获得服务器侧的最新数据。例如:社交网络、实时竞拍、股价查询等应用场景都要求客户端可以及时获得服务器侧更新的数据。然而,关于实时同步的相关开源技术较少,如果要基于终端APP(Application,应用程序)提供实时同步服务,需要单独开发一套动态、可扩展的实时同步系统,但是成本较高。
现有的实时同步基本通过轮询的方式实现。以实时竞拍为例,终端侧的客户端根据竞拍状态的改变调用终端API(Application Programming Interface,应用程序编程接口)轮询服务器,从服务器获取最新的竞拍数据,以便同步更新终端侧的用户界面,并且,在此过程中,客户端还需适时地获取服务端的时间,将客户端本地的时间同步为与服务器相同,进而实现客户端的计时系统与服务器的时间同步。
但是,轮询为单工通信,轮询需要客户端不断地向服务器发出HTTP(HyperTextTransfer Protocol,超文本传输协议)请求,服务器仅在更新数据之后向客户端返回最新的数据。客户端大量轮询服务器,而服务器并不是总有数据更新,这样就造成客户端向服务器发送了大量的不必要的请求,造成浪费流量的同时给服务器增加了压力;而且客户端和服务器分别进行倒计时,如果客户端从服务器获取时间的过程中,出现网络信号质量较差、数据传输拥堵、客户端对时间的处理响应速度慢等问题,将会使客户端和服务器之间出现时间误差,客户端和服务器时间不同步,数据实时性较差。
发明内容
本发明一种实时同步方法和装置,用以解决现有同步方式会造成客户端向服务器发送了大量的不必要的请求且实时性差的问题。
针对上述技术问题,本发明是通过以下技术方案来解决的:
本发明提供了一种实时同步方法,在客户端侧执行,所述方法包括:通过Websocket协议和服务器建立长连接;基于所述长连接,向所述服务器发送针对数据对象的订阅请求;接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。
其中,所述方法还包括:如果距离上一次接收到所述服务器返回的更新信息的时间达到预设时长,则每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。
其中,所述方法还包括:在向所述服务器发送心跳包之后,如果未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。
本发明提供了一种实时同步方法,在服务器侧执行,所述方法包括:通过Websocket协议和客户端建立长连接;基于所述长连接,接收所述客户端针对数据对象的订阅请求;根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,以使所述客户端和所述服务器数据同步且时间同步。
其中,所述方法还包括:在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。
本发明还提供了一种实时同步装置,设置在客户端侧,所述装置包括:第一连接模块,用于通过Websocket协议和服务器建立长连接;第一发送模块,用于基于所述长连接,向所述服务器发送针对数据对象的订阅请求;第一接收模块,用于接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。
其中,所述第一发送模块,还用于:在距离上一次接收到所述服务器返回的更新信息的时间达到预设时长的情况下,每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。
其中,所述第一连接模块还用于:在所述第一发送模块向所述服务器发送心跳包之后,如果所述第一接收模块未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。
本发明还提供了一种实时同步装置,设置在服务器侧,所述装置包括:第二连接模块,用于通过Websocket协议和客户端建立长连接;第二接收模块,用于基于所述长连接,接收所述客户端针对数据对象的订阅请求;第二发送模块,用于根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,以使所述客户端和所述服务器数据同步且时间同步。
其中,所述第二发送模块,还用于在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。
本发明有益效果如下:
本发明的客户端和服务器基于Websocket协议建立长连接,客户端和服务器基于该长连接可以进行双工通信,避免客户端对服务器进行无效轮询。在长连接建立之后,客户端通过订阅的方式从服务器获得数据对象的更新信息以及服务器的当前时间信息,获得的更新信息和时间信息更具时效性,进而可以实现客户端和服务器之间的数据同步和时间同步。
附图说明
图1是根据本发明第一实施例的实时同步方法的流程图;
图2是根据本发明第二实施例的实时同步方法的流程图;
图3是根据本发明第三实施例的实时同步方法的示意图;
图4是根据本发明第四实施例的实时同步方法的流程图;
图5是根据本发明第五实施例的实时同步装置的结构图;
图6是根据本发明第六实施例的实时同步装置的结构图。
具体实施方式
本发明基于Websocket协议,在客户端和服务器之间建立长连接;基于该长连接,服务器向客户端发送数据对象的更新信息,保证客户端和服务器之间的数据同步;基于该长连接服务器向客户端发送服务器的当前时间信息,包含客户端和服务器之间的时间同步。
WebSocket是HTML5的一种协议。WebSocket可以实现客户端与服务器之间的全双工通信(full-duplex),使客户端和服务器进行实时通信。进而通过本发明减少了客户端对服务器的无效轮询,避免了客户端向服务器发送大量的不必要的请求,并且解决了客户端和服务器之间实时性差的问题。
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
实施例一
本实施例提供一种在客户端侧执行的实时同步方法。图1是根据本发明第一实施例的实时同步方法的流程图。本实施例的执行主体为客户端。该客户端例如为浏览器客户端。
步骤S110,基于Websocket协议和服务器之间建立长连接。
长连接是指通信双方在一个连接上可以连续发送多个数据包。进一步地,该长连接为套接字Socket连接。
长连接的建立过程为客户端和服务器的握手过程。客户端向服务器发起握手请求,服务器对该握手请求进行响应,客户端和服务器之间的长连接建立完成。进一步地,该建立过程可以借助HTTP(HyperText Transfer Protocol,超文本传输协议)请求来完成。
步骤S120,基于所述长连接,向所述服务器发送针对数据对象的订阅请求。
数据对象是指具有一组不同性质或者属性的事物。该事物可以是实体对象的抽象。例如:数据对象为一辆汽车,可以通过该汽车的属性来描述该汽车。
订阅请求用于请求服务器在数据对象的信息发生改变时返回该数据对象变化后的更新信息,以便使客户端和服务器之间的数据是同步的。在订阅请求中携带数据对象的信息,如数据对象的ID。
例如:用户打开实时竞拍界面,查看正在竞拍中的车辆信息,如竞拍价格,这时可以向服务器发送订阅请求,在竞拍价格变化之后,由服务器负责将该变化后的竞拍价格反馈给客户端,使客户端可以显示最新的竞拍价格。
步骤S130,接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。
服务器的当前时间信息可以是服务器的系统时间或者服务器的计时时间。
在接收到数据对象的更新信息之后,根据该更新信息,对客户端侧的该数据对象的当前信息进行更新并显示,保证客户端和服务器的数据一致性。进一步地,在显示数据对象的信息时,可以采用模块化显示方式,即将显示页面划分成多个显示区域,每个区域始终用于显示一类内容。例如:第一显示区域用于显示时间的相关信息,第二显示区域用于显示数据对象的相关信息。
在接收到服务器的当前时间信息后,根据服务器的当前时间信息对客户端的当前时间信息进行校准,使客户端的当前时间和服务器的当前时间相同,保证客户端和服务器的时间一致性。客户端的当前时间信息可以是客户端侧的系统时间或者客户端的计时时间(定时时间)。
在长连接建立之后,为了保持该长连接有效,客户端每隔预定时间向服务器发送心跳包,服务器在接收到心跳包之后向客户端发送应答包。客户端如果在预定时间段内没有收到应答包,则说明长连接已经断开,需要进行重连接,这时客户端基于Websocket协议重新和服务器之间建立长连接。进一步地,如果距离上一次接收到所述服务器返回的更新信息的时间达到预设时长,则每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。在向所述服务器发送心跳包之后,如果未接收到所述服务器针对所述心跳包返回的应答包,则判定该长连接断开,重新通过Websocket协议和服务器建立长连接。
在本实施例中,客户端和服务器基于长连接可以进行双工通信,避免客户端对服务器进行无效轮询。
在本实施例中,在长连接建立之后,通过订阅的方式从服务器获得数据对象的更新信息以及服务器的当前时间信息,获得的更新信息和时间信息更具时效性,进而可以实现客户端和服务器之间的数据同步和时间同步。进一步地,在本实施例中,服务器在向客户端返回更新信息时将当前时间信息一同返回,根据服务器的当前时间信息对客户端的当前时间进行校准,保证客户端和服务器之间的时间同步。
实施例二
本实施例提供一种在服务器侧执行的实时同步方法。图2是根据本发明第二实施例的实时同步方法的流程图。本实施例的执行主体为服务器。
步骤S210,通过Websocket协议和客户端建立长连接。
服务器基于Websocket协议与客户端建立长连接。服务器接收客户端发送的握手请求,对该握手请求进行响应,进而建立长连接。
步骤S220,基于所述长连接,接收所述客户端针对数据对象的订阅请求。
步骤S230,根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端。
根据所述订阅请求针对的数据对象,监控该数据对象的信息是否发生改变,如果发生改变,则将改变后的信息发送给客户端,即将该数据对象的更新信息返回给客户端,以便客户端和服务器两侧的数据同步。
为了使客户端和服务器的时间同步,可以在向客户端返回更新信息时,将服务器的当前时间信息一同返回给客户端。
为了保持长连接有效,在长连接建立之后,会接收到客户端发送的心跳包,在接收到客户端发送的心跳包之后,针对该心跳包向客户端返回应答包。
在本实施例中,服务器接受客户端对数据对象的更新信息的订阅,进而在数据对象的信息发生更新时,主动将更新信息发送给客户端,并且将当前时间信息一同发送给客户端,使客户端侧的数据对象信息和时间信息和服务器保持同步。
实施例三
下面对本发明的实时同步方法进行进一步地的说明。
图3是根据本发明第三实施例的实时同步方法的示意图。
Login,表示打开客户端。该客户端例如是浏览器客户端。进一步地,在浏览器客户端中打开所需的网页,显示该网页的界面。
Open,表示启动套接字Socket。
Connect,表示通过WebSocket协议建立客户端与服务器的长连接。
Subscribe,表示客户端向服务器发送针对数据对象的订阅请求,以便服务器根据该订阅请求在该数据对象的信息发生改变(更新),能够及时主动地将该改变后的信息发送给客户端。
Heartbeat,表示心跳监测。客户端每隔预定时间段向服务器发送一次心跳包(ping),服务器在接收到该心跳包之后返回应答包(pong)。
倒三角重连机制,用于通过计时器timer对长连接的闲置时间进行计时。闲置时间是指距离上一次接收到服务器返回的信息的时间长度。如果闲置时间达到预设时长,则启动心跳监测,如果客户端的网络监测模块netjudger判定服务器未返回应答包,则Reconnect重新连接服务器。
在客户端侧,如果距离上一次接收到服务器返回的信息的时间到达预设时长(如60s),则客户端每隔预定时间段向服务器发送心跳包,服务器在接收到该心跳包之后返回应答包,这样可以判断客户端和服务器之间的长连接是否异常,如果异常,则客户端重新和服务器建立长连接。客户端如果在一段时间内接收到心跳包对应的应答包,则长连接正常,反之长连接异常。上述信息可以是更新信息也可以是其他信息。长连接异常例如是:网线被拔掉、网络阻塞等网络故障问题。
Close,表示监测长连接断开的次数,如果客户端和服务器之间的长连接断开的次数超过次数阈值,则判断基于该长连接未收到服务器的应答包的时间是否超过预设应答时间阈值,如果是,则主动断开该长连接,在需要从服务器获得更新信息以及服务器的当前时间信息时,再由Reconnect重新和服务器建立长连接。
如果数据对象的数量为多个,则可以建立消息订阅队列Subscribe queue,将多个数据对象的信息存入该消息订阅队列,并顺次为消息订阅队列中的每个数据对象向服务器订阅更新消息。
实施例四
由于实时竞拍场景对数据同步和时间同步的要求较高,下面针对实时竞拍场景,对本发明的实时同步方法进行进一步的描述。本实施例在浏览器客户端侧执行,数据对象为车辆。本实施例的执行主体为客户端。
图4是根据本发明第四实施例的实时同步方法的流程示意图。
步骤1,打开浏览器客户端,进入竞拍界面,并和服务器建立长连接。
步骤2,从服务器侧拉取所有车辆信息。
车辆信息包括:车辆品牌、车辆型号、过户类型(公务车辆、普通车辆)、起拍价格等信息。
步骤3,对车辆信息进行检测,识别需要竞拍的车辆以及竞拍顺序。
步骤4,按照竞拍顺序获取车辆信息并显示,同时向服务器订阅该车辆信息的变化。
对车辆信息中的竞拍日期和竞拍时间进行检测,识别当日需要竞拍的车辆以及竞拍顺序;在当日需要竞拍的车辆中,根据竞拍时间对车辆信息进行排序,从第一个需要竞拍的车辆开始,顺序获取车辆信息并在竞拍界面中进行显示。
可以将需要竞拍的多个车辆的车辆信息存储在消息订阅队列中,每从消息订阅队列中获取一个车辆信息,就向服务器订阅该车辆信息的变化。
步骤5,接收服务器发送的该车辆信息对应的竞拍状态并显示。
竞拍状态包括等待中和竞拍中。等待中为竞拍中之前的竞拍状态。
等待中是指该车辆信息对应的车辆尚未开始竞拍。
竞拍中是指该车辆信息对应的车辆已经开始竞拍。
步骤6,判断该竞拍状态是否为竞拍中;如果是,则执行步骤7;如果否,则执行步骤5。
步骤7,启动定时器并显示定时器的定时信息。
定时器为倒计时定时器。进一步地,在客户端内核中通常提供计时功能,通过该计时功能创建当前竞拍车辆的对应的定时器。
定时信息用于提示用户距离拍卖该车辆信息对应的车辆结束的时间。例如:距离结束时间还有1分钟50秒。
步骤8,接收服务器发送的该车辆信息的变化以及服务器的计时时间。
服务器的计时时间为距离拍卖该车辆信息对应的车辆结束的时间。
车辆信息的变化包括:车辆竞拍价格的变化。
服务器在发送车辆信息的变化以及服务器的计时时间时,可以使用乐观锁,为车辆信息的变化以及服务器的计时时间时添加版本号,以保证在数据同步和时间同步的过程,客户端使用正确的数据进行数据更新。
步骤9,根据该车辆信息的变化对该车辆信息进行更新并显示更新后的车辆信息,并且根据服务器的计时时间对定时器的定时信息进行校准并显示校准后的定时信息。
客户端和服务器在竞拍开始出价后,实时同步服务器的竞拍价格、计时时间等信息到客户端,保证客户端和服务器的数据同步和时间同步。避免客户端定期轮询服务器询问车辆信息的变化和计时时间的问题,因此在本实施例中,客户端能够及时快速得到服务器端最新数据。
为了避免在竞拍中客户端和服务器之间的长连接异常造成的竞拍失败的问题,客户端可以选择定时器定时到预定时刻时,如定时器倒计时到15S和3S时,客户端和服务器建立短连接,从服务器获取车辆信息的变化和当前的计时时间,断开该短连接并对客户端侧的车辆信息和计时时间进行更新。
步骤10,定时器结束之后,从服务器获取竞拍结果并显示。
竞拍结果包括:最终竞拍价格和成交信息。
由于参与竞拍的客户端数量可能较多,所以为了避免给服务器的处理造成压力,可以在定时器结束后的预定时间(如2s)从服务器获取竞拍结果并显示。
步骤11,判断需要竞拍的车辆是否都竞拍结束;如果是,则结束流程,如果否,则跳转到步骤4。
在本实施例中,采用BidView方式显示车辆信息、竞拍状态、定时信息和竞拍结果,即采用模块化显示方式,将竞拍界面划分成多个显示区域,每个区域用于显示一类内容。这样,不同车辆的车辆信息、竞拍状态、定时信息和竞拍结果可以在竞拍界面的不同显示区域分别进行加载和渲染,在其中一个显示区域对应的信息需要更新时,无需重新加载整个界面,仅加载发生变化的部分显示区域即可,进而实现了竞拍界面的复用性。
在本实施例中,如果服务器中的数据可以采用分布式缓存的方式进行存储。例如分布存储在多个缓存服务器中,这样可以满足好了客户端快速链接的需求。如果将数据分布存储在多个缓存服务器中,则客户端需要和数据对象的信息所在的缓存服务器建立长连接,以便实时获得最新的数据。
实施例五
本实施例提供一种设置在客户端的实时同步装置。图5是根据本发明第五实施例的实时同步装置的结构图。
该设置在客户端侧的实时同步装置包括:
第一连接模块510,用于通过Websocket协议和服务器建立长连接。
第一发送模块520,用于基于所述长连接,向所述服务器发送针对数据对象的订阅请求。
第一接收模块530,用于接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,以使所述客户端和所述服务器数据同步且时间同步。
在一个实施例中,第一发送模块520,还用于在距离上一次接收到所述服务器返回的更新信息的时间达到预设时长的情况下,每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。
在另一实施例中,第一连接模块510还用于在所述第一发送模块向所述服务器发送心跳包之后,如果第一接收模块530未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。
本实施例所述的装置的功能已经在图1~图4所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
实施例六
本实施例提供一种设置在服务器侧的实时同步装置的结构图。图6是根据本发明第六实施例的实时同步装置的结构图。
该设置在服务器侧的实时同步装置,包括:
第二连接模块610,用于通过Websocket协议和客户端建立长连接。
第二接收模块620,用于基于所述长连接,接收所述客户端针对数据对象的订阅请求。
第二发送模块630,用于根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,以使所述客户端和所述服务器数据同步且时间同步。
在一个实施例中,第二发送模块630,还用于在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。
本实施例所述的装置的功能已经在图1~图4所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
Claims (10)
1.一种实时同步方法,其特征在于,在客户端侧执行,所述方法包括:
通过Websocket协议和服务器建立长连接;
基于所述长连接,向所述服务器发送针对数据对象的订阅请求;
接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,在接收到所述服务器的当前时间信息后,根据所述服务器的当前时间信息对客户端的当前时间信息进行校准,使客户端的当前时间和服务器的当前时间相同,以使所述客户端和所述服务器数据同步且时间同步。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
如果距离上一次接收到所述服务器返回的更新信息的时间达到预设时长,则每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在向所述服务器发送心跳包之后,如果未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。
4.一种实时同步方法,其特征在于,在服务器侧执行,所述方法包括:
通过Websocket协议和客户端建立长连接;
基于所述长连接,接收所述客户端针对数据对象的订阅请求;
根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,在接收到服务器的当前时间信息后,根据所述服务器的当前时间信息对客户端的当前时间信息进行校准,使客户端的当前时间和服务器的当前时间相同,以使所述客户端和所述服务器数据同步且时间同步。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。
6.一种实时同步装置,其特征在于,设置在客户端侧,所述装置包括:
第一连接模块,用于通过Websocket协议和服务器建立长连接;
第一发送模块,用于基于所述长连接,向所述服务器发送针对数据对象的订阅请求;
第一接收模块,用于接收所述服务器根据所述订阅请求返回的所述数据对象的更新信息以及随所述更新信息一同返回的所述服务器的当前时间信息,在接收到所述服务器的当前时间信息后,根据所述服务器的当前时间信息对客户端的当前时间信息进行校准,使客户端的当前时间和服务器的当前时间相同,以使所述客户端和所述服务器数据同步且时间同步。
7.如权利要求6所述的装置,其特征在于,所述第一发送模块,还用于:
在距离上一次接收到所述服务器返回的更新信息的时间达到预设时长的情况下,每隔预设时间段向所述服务器发送一次心跳包,以便保持所述长连接有效。
8.如权利要求7所述的装置,其特征在于,所述第一连接模块还用于:
在所述第一发送模块向所述服务器发送心跳包之后,如果所述第一接收模块未接收到所述服务器针对所述心跳包返回的应答包,则重新通过Websocket协议和服务器建立长连接。
9.一种实时同步装置,其特征在于,设置在服务器侧,所述装置包括:
第二连接模块,用于通过Websocket协议和客户端建立长连接;
第二接收模块,用于基于所述长连接,接收所述客户端针对数据对象的订阅请求;
第二发送模块,用于根据所述订阅请求,在更新所述数据对象对应的信息之后,将所述数据对象的更新信息返回给所述客户端,并将当前时间信息随所述更新信息一同返回给所述客户端,在接收到服务器的当前时间信息后,根据所述服务器的当前时间信息对客户端的当前时间信息进行校准,使客户端的当前时间和服务器的当前时间相同,以使所述客户端和所述服务器数据同步且时间同步。
10.如权利要求9所述的装置,其特征在于,所述第二发送模块,还用于在接收到所述客户端发送的心跳包之后,针对所述心跳包向所述客户端返回应答包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611202314.5A CN106850745B (zh) | 2016-12-23 | 2016-12-23 | 一种实时同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611202314.5A CN106850745B (zh) | 2016-12-23 | 2016-12-23 | 一种实时同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850745A CN106850745A (zh) | 2017-06-13 |
CN106850745B true CN106850745B (zh) | 2021-01-15 |
Family
ID=59135773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611202314.5A Active CN106850745B (zh) | 2016-12-23 | 2016-12-23 | 一种实时同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850745B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107507064A (zh) * | 2017-08-22 | 2017-12-22 | 厦门易名科技股份有限公司 | 基于websocket的竞价方法和装置和电子设备和计算机可读存储介质 |
CN109660584A (zh) * | 2017-10-12 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 一种客户端与服务器建立长连接的方法及通信方法与通信系统 |
KR102406514B1 (ko) * | 2017-10-17 | 2022-06-10 | 현대자동차주식회사 | 차량의 데이터 관리 장치, 서버 및 차량 데이터 관리 시스템 |
CN108228210B (zh) * | 2017-12-08 | 2021-06-04 | 平安科技(深圳)有限公司 | 一种资源更新方法及系统 |
CN109936601B (zh) * | 2017-12-18 | 2022-10-25 | 本无链科技(深圳)有限公司 | 一种基于WebSocket连接的区块链双工通信方法 |
CN108124007A (zh) * | 2017-12-19 | 2018-06-05 | 深圳交控科技有限公司 | 消息数据实时传输的方法与装置 |
CN107948211A (zh) * | 2018-01-09 | 2018-04-20 | 北京知道创宇信息技术有限公司 | 一种时间同步方法、装置、服务器及存储介质 |
CN108881395B (zh) * | 2018-05-23 | 2021-11-23 | 北京五八信息技术有限公司 | 消息推送方法、设备、消息管理器及计算机可读存储介质 |
CN109302496A (zh) * | 2018-11-28 | 2019-02-01 | 南昌百恒信息技术有限公司 | 一种新型实时信息流交互方法 |
CN111240773A (zh) * | 2018-11-28 | 2020-06-05 | 中国科学院沈阳自动化研究所 | 一种软件前端与后端连接方法 |
US11184414B2 (en) | 2018-12-07 | 2021-11-23 | Slack Technologies, Llc | Reservation management for client-initiated polling requests in a communication system |
CN109803023A (zh) * | 2019-01-31 | 2019-05-24 | 北京融链科技有限公司 | 数据处理方法及系统 |
CN110071981A (zh) * | 2019-04-30 | 2019-07-30 | 广东电网有限责任公司 | 一种无业务数据交换下保持websocket长连接的方法 |
CN110460664A (zh) * | 2019-08-13 | 2019-11-15 | 深圳市商汤科技有限公司 | 信息同步方法及装置、电子设备和存储介质 |
CN110636132A (zh) * | 2019-09-26 | 2019-12-31 | 视联动力信息技术股份有限公司 | 数据同步方法、客户端、电子设备及计算机可读存储介质 |
CN111031059A (zh) * | 2019-12-23 | 2020-04-17 | 河南派亚尼尔自动化设备有限公司 | 一种基于WebSocket的物联网大屏监控系统及方法 |
CN111008032A (zh) * | 2019-12-30 | 2020-04-14 | 深圳前海微众银行股份有限公司 | 一种页面数据更新方法及装置 |
CN111427703A (zh) * | 2020-03-12 | 2020-07-17 | 上海昊沧系统控制技术有限责任公司 | 工业数据实时展示方法及系统 |
CN111901420B (zh) * | 2020-07-28 | 2023-06-16 | 深圳市康冠科技股份有限公司 | 一种数据同步方法、装置及系统 |
CN112565214A (zh) * | 2020-11-26 | 2021-03-26 | 中国船舶工业系统工程研究院 | 基于WebSocket的数据传输方法、系统和介质 |
CN117278601A (zh) * | 2021-06-17 | 2023-12-22 | 聚好看科技股份有限公司 | 一种线上会议中的终端状态更新方法及服务器 |
CN113746910A (zh) * | 2021-08-25 | 2021-12-03 | 湖北美和易思教育科技有限公司 | H5页面重连服务器的方法、终端及可读存储介质 |
CN114125026B (zh) * | 2021-11-24 | 2023-09-05 | 四川长虹电器股份有限公司 | 用于广告机的通信方法及广告机 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103347006A (zh) * | 2013-06-20 | 2013-10-09 | 同济大学 | 一种网络化协同虚拟实验控制系统及控制方法 |
CN103731684A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 一种点播到直播的视频切换方法、设备及系统 |
CN104394212A (zh) * | 2014-11-23 | 2015-03-04 | 国云科技股份有限公司 | 一种实时网站推送消息的方法 |
CN104506625A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种提升云数据库元数据节点可靠性的方法 |
CN105791291A (zh) * | 2016-03-02 | 2016-07-20 | 腾讯科技(深圳)有限公司 | 网络应用的显示控制方法、显示中实时更新的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546584B (zh) * | 2013-11-13 | 2018-08-14 | 努比亚技术有限公司 | 信息推送方法和系统 |
CN103678009B (zh) * | 2013-12-05 | 2017-06-16 | 新浪网技术(中国)有限公司 | 网页页面的订阅者接收网络数据的方法和装置 |
-
2016
- 2016-12-23 CN CN201611202314.5A patent/CN106850745B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103347006A (zh) * | 2013-06-20 | 2013-10-09 | 同济大学 | 一种网络化协同虚拟实验控制系统及控制方法 |
CN103731684A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 一种点播到直播的视频切换方法、设备及系统 |
CN104394212A (zh) * | 2014-11-23 | 2015-03-04 | 国云科技股份有限公司 | 一种实时网站推送消息的方法 |
CN104506625A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种提升云数据库元数据节点可靠性的方法 |
CN105791291A (zh) * | 2016-03-02 | 2016-07-20 | 腾讯科技(深圳)有限公司 | 网络应用的显示控制方法、显示中实时更新的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106850745A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850745B (zh) | 一种实时同步方法和装置 | |
CN112738548B (zh) | 一种流媒体调度方法、装置、设备及存储介质 | |
US10021182B2 (en) | Method and apparatus for data synchronization | |
JP2009211343A (ja) | サーバ装置および通信システム | |
EP2712126A2 (en) | Networking method, server end device, client end device and network system | |
CN111427527A (zh) | 投屏方法、装置、设备及计算机可读存储介质 | |
TW201737114A (zh) | 配置資訊推送方法及裝置 | |
CN109788301A (zh) | 一种流媒体的直播方法、终端设备、直播系统及计算机可读存储介质 | |
CN111431964A (zh) | 一种消息同步处理方法、装置及存储介质 | |
CN103685398A (zh) | 通信连接建立方法及通信系统 | |
WO2017096794A1 (zh) | 广告数据传输方法、装置及系统 | |
WO2017004990A1 (zh) | 消息推送方法及装置 | |
CN111818010B (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
CN112738283A (zh) | 一种信令传输方法、装置、设备及存储介质 | |
CN113132477A (zh) | 一种浏览器终端与设备的实时传输交互方法及系统 | |
JP6532159B2 (ja) | リアルタイム映像通信の品質評価方法およびシステム | |
KR101044065B1 (ko) | Iptv 서비스 망에서의 시각 동기 방법 | |
CN111245874B (zh) | 信息推送方法、装置、服务器及存储介质 | |
CN107733979B (zh) | 数据推送方法、服务器及系统 | |
CN110324377B (zh) | 一种推送交互方法、装置、电子设备及介质 | |
CN114422591B (zh) | 点对点通信方法、数据通信系统、计算机设备、存储介质 | |
JP6957079B2 (ja) | 情報を提示するための方法及びデバイス | |
CN110233744B (zh) | 一种会议状态显示方法、会议状态更新方法及装置 | |
JP5307846B2 (ja) | 共有制御システム、制御方法、制御プログラム、管理サーバ、および表示端末 | |
CN108667795B (zh) | 一种虚拟现实视频的多人分享系统及虚拟现实设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |