A data synchronization verification method, system, computing device and storage medium

By receiving and processing data packets on the server and verifying them through frame message packets and frame data packets, the delay and error problems caused by state synchronization are solved, and the accurate check and synchronization experience of sensitive data is improved.

CN112169340BActive Publication Date: 2025-03-14CHENGDU PERFECT TIANZHIYOU BUSINESS CONSULTING CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010851446.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-08-21
Publication Date
2025-03-14
Estimated Expiration
2040-08-21

AI Technical Summary

Technical Problem

In services with high synchronization experience requirements, state synchronization causes the terminal to have strong delay relative to the server, resulting in large errors in verification of sensitive data and affecting the user experience.

Method used

By receiving the first frame data packet on the server, executing operation instructions, obtaining operation results, and sending operation results to the terminal through the frame message packet. After receiving the frame data packet, the terminal returns the verification instructions and the frame packet identification of the operation result through the frame data packet to perform verification.

Benefits of technology

Accurate verification of sensitive data is achieved, errors in user experience are reduced, and accuracy of synchronous experience is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112169340B_ABST
    Figure CN112169340B_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a data synchronization verification method, system, computing device and storage medium. In the embodiment of the present application, within a predetermined time, the operating frame rate of the client installed in the terminal is greater than the operating frame rate of the server within a preset range, receives the first frame data packet, executes the first operation instruction, and obtains the first operation result; stores the correspondence between the first operation result and the first frame packet identifier to the corresponding cache queue; sends the first operation result to the corresponding multiple terminals through a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier. Thereby, after receiving the frame message packet, the terminal returns the second operation instruction and the frame packet identifier corresponding to the operation result before the second operation instruction through the second frame data packet to verify the second operation instruction. Thereby, the operation result can be verified more accurately for state synchronization.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a data synchronization verification method, system, computing device and storage medium. Background Art

[0002] With the rapid development of the Internet, users can be provided with many services through the Internet, such as online instant messaging, online games, online shopping, etc. The provision of services requires interaction between the server and the user's terminal.

[0003] In some interaction methods, the server needs to send the data to be synchronized to the corresponding terminal through synchronization. Among them, the state synchronization method will cause a certain difference in the data between the terminal and the server, resulting in a strong delay in the terminal relative to the server. For some services that have high requirements for synchronization experience, there will be certain errors when accurately verifying sensitive data, which will greatly affect the user experience. Summary of the invention

[0004] Multiple aspects of the present application provide a data synchronization verification method, system, computing device and storage medium, which are used to perform more accurate verification of sensitive data for services with high synchronization experience requirements.

[0005] An embodiment of the present application provides a method for synchronous verification of data, which is applied to a server. Within a predetermined time, the operating frame rate of a client installed in a terminal is greater than the operating frame rate of the server within a preset range. The method includes: receiving a first frame data packet, the frame data packet carrying a first operation instruction and a first frame packet identifier, executing the first operation instruction, and obtaining a first operation result; storing the correspondence between the first operation result and the first frame packet identifier in a corresponding storage queue; sending the first operation result to a corresponding plurality of terminals via a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns a second operation instruction and a frame packet identifier corresponding to the operation result before the second operation instruction via a second frame data packet, so as to verify the second operation instruction.

[0006] An embodiment of the present application also provides a data synchronization verification method, which is applied to a terminal. Within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range. The method includes: receiving a frame message packet, the frame message packet carrying an operation result and a frame packet identifier corresponding to the operation result; displaying the operation result, and receiving an operation instruction for the operation result; returning the operation instruction and the frame packet identifier corresponding to the operation result through a frame data packet to verify the operation instruction.

[0007] An embodiment of the present application also provides a data synchronization system, including: a server and a terminal, wherein within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range: the server receives a first frame data packet, the frame data packet carries a first operation instruction and a first frame packet identifier, executes the first operation instruction, and obtains a first operation result; stores the correspondence between the operation result and the first frame packet identifier in a corresponding storage queue; sends the operation result to a corresponding plurality of terminals via a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier; the terminal, after receiving the frame message packet, displays the operation result, and receives a second operation instruction for the operation result; returns the second operation instruction and the frame packet identifier corresponding to the operation result via a second frame data packet to verify the second operation instruction.

[0008] An embodiment of the present application also provides a computing device, a memory, a processor and a communication component; the memory is used to store a computer program; the communication component is used to receive a first frame data packet, the frame data packet carries a first operation instruction and a first frame packet identifier; the processor is used to execute the computer program to: execute the first operation instruction to obtain a first operation result; store the correspondence between the first operation result and the first frame packet identifier in a corresponding storage queue; the communication component is used to send the first operation result to a corresponding plurality of terminals via a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns a second operation instruction and a frame packet identifier corresponding to the operation result of the second operation instruction via a second frame data packet to verify the second operation instruction, and within a predetermined time, the operating frame rate of the client installed on the terminal is greater than the operating frame rate of the server within a preset range.

[0009] An embodiment of the present application also provides a computing device, a memory, a processor and a communication component; the memory is used to store a computer program; the communication component is used to receive a frame message packet, the frame message packet carries an operation result and a frame packet identifier corresponding to the operation result; the processor is used to execute the computer program to: display the operation result, and receive an operation instruction for the operation result; the communication component is used to return the operation instruction and the frame packet identifier corresponding to the operation result through a frame data packet to verify the operation instruction, and within a predetermined time, the terminal's operating frame rate is greater than the server's operating frame rate within a preset range.

[0010] An embodiment of the present application also provides a computer-readable storage medium storing a computer program. When the computer program is executed by one or more processors, the one or more processors implement the steps in the above method.

[0011] In an embodiment of the present application, within a predetermined time, the operating frame rate of the client installed in the terminal is greater than the operating frame rate of the server within a preset range, the server receives a first frame data packet, the frame data packet carries a first operation instruction and a first frame packet identifier, executes the first operation instruction, and obtains a first operation result; stores the correspondence between the first operation result and the first frame packet identifier in a corresponding storage queue; sends the first operation result to the corresponding multiple terminals through a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier. Thus, after receiving the frame message packet, the terminal returns the second operation instruction and the frame packet identifier corresponding to the operation result before the second operation instruction through the second frame data packet to verify the second operation instruction. So that when the frame packet identifier is the second frame packet identifier, it can be determined that the second operation instruction is for the first operation result, and then the verification is passed. Therefore, the operation result can be verified more accurately for state synchronization, and the user experience can be improved. Avoid the problem of verification failure due to different operation results.

[0012] At the same time, due to the high synchronization efficiency of state synchronization, it can support services in which multiple users participate in interaction, such as game services in which multiple users participate. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0014] Figure 1 A flowchart of a data synchronization verification method according to an exemplary embodiment of the present application;

[0015] Figure 2 A schematic diagram of a data verification process of an exemplary embodiment of the present application;

[0016] Figure 3 A schematic diagram of a process of frame identification conversion according to an exemplary embodiment of the present application;

[0017] Figure 4 A flowchart of a method for synchronously verifying data according to another exemplary embodiment of the present application;

[0018] Figure 5 A schematic diagram of the structure of a data synchronization verification device provided by another exemplary embodiment of the present application;

[0019] Figure 6A schematic diagram of the structure of a data synchronization verification device provided by another exemplary embodiment of the present application;

[0020] Figure 7 A schematic diagram of the structure of a computing device provided for an exemplary embodiment of the present application;

[0021] Figure 8 A schematic diagram of the structure of a computing device provided for an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0022] In order to make the purpose, technical solution and advantages of the present application clearer, the technical solution of the present application will be clearly and completely described below in combination with the specific embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present application.

[0023] Based on the above, for some services that have high requirements for synchronization experience, there will be certain errors in state synchronization when accurate verification of sensitive data, resulting in a poor user experience.

[0024] For example, in a multiplayer online game service, the client pre-performance method installed in the terminal is usually used, that is, the performance data of the current game user (also known as the game player) will be ahead of the player data in the server, such as the server. The server then synchronizes the operation results of the game player to the client of other game players. Then, other game players can see the operation results from their own clients, which will be later than the player data in the server. This also causes each player character to have three states in the entire game process: the state of the client pre-performance of the game player, the state of the current player on the server, and the state seen by the client of other game players. These three states cannot be completely consistent in data due to network delays and processing delays at each end. Under this premise, if an operation with high data synchronization requirements is performed, such as other game players attacking the current game player at a certain location, since the current game player is in a pre-performance mode, that is, it is possible that the current game player has left the location, and other game players do not know it yet, and still attack the current game player at a certain location, then it is possible to cause the operation to fail, such as the attack failure, because the current game player has left the location. This causes the problem of server verification failure.

[0025] In addition, the logic of the frame synchronization method in the synchronization method does not involve the server. The server only forwards data and cannot verify and arbitrate the data results. After the network is disconnected and reconnected, all operations during the network disconnection need to be synchronized, which takes a long time. At the same time, the operations of all participating terminals need to be synchronized, which is not suitable for services with large-scale multi-person participation and interaction, such as online games.

[0026] Therefore, the embodiment of the present application provides a data synchronization verification method, which can perform more accurate verification of sensitive data for services with high synchronization experience requirements.

[0027] The technical solutions provided by various embodiments of the present application are described in detail below in conjunction with the accompanying drawings.

[0028] Figure 1 The flowchart of a data synchronization verification method of an exemplary embodiment of the present application is shown in FIG. The method 100 provided in the embodiment of the present application can be executed by a server, such as a server. Within a predetermined time, the running frame rate of the client installed in the terminal is greater than the running frame rate of the server within a preset range. The method 100 includes the following steps:

[0029] 101: Receive a first frame data packet, where the frame data packet carries a first operation instruction and a first frame packet identifier, execute the first operation instruction, and obtain a first operation result.

[0030] 102: Store the correspondence between the first operation result and the first frame packet identifier in a corresponding storage queue.

[0031] 103: Send the first operation result to the corresponding multiple terminals via a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns the second operation instruction and the frame packet identifier corresponding to the operation result before the second operation instruction via a second frame data packet to verify the second operation instruction.

[0032] It should be noted that the running frame rates of the client and the server in the terminal are different, and the running frame rate of the client may be greater than the running frame rate of the server.

[0033] The following is a detailed description of the above steps:

[0034] 101: Receive a first frame data packet, where the frame data packet carries a first operation instruction and a first frame packet identifier, execute the first operation instruction, and obtain a first operation result.

[0035] Among them, the frame refers to the running frame, which can also be called the running data frame, which is the logical frame of the client installed on the server and the terminal. The data is run based on the logical frame. For example, the server and the client can run 30 data frames in 1 second. Each data frame has its own time point. After the corresponding time point arrives, the server or the client runs the corresponding data frame. The data frame can correspond to some data to be run, such as some operation instructions. The operation instruction can refer to the operation performed by the user on the client, such as moving the game character. The execution result is the result obtained for the instruction, such as moving the game character to position A.

[0036] For the terminal, a client, such as an APP (application), is installed on it. The client will also have data frames and needs to interact with the server for data. In order to synchronize data with the server, it is necessary to use data frames to connect the data synchronization between the client and the server. After the client performs an operation, it is necessary to send the operation data, such as operation instructions, to the server. The client can send the operation data through a frame data packet, and the frame data packet can carry a frame packet identifier (also called a frame identifier) ​​of its own data packet, such as a frame packet number (also called a frame number). To synchronize data with the server.

[0037] For example, according to the above, if Figure 2 As shown, game user A connects to the game server (i.e., server) through the game APP (i.e., client A) installed on his mobile phone and enters the game scene. The game is a large-scale multiplayer game, and multiple people interact in the same game scene at the same time. After entering the game scene, game user A can perform game operations, and the game user A operates his own game character A. Game user A moves its corresponding game character A to a position through the game APP. The game APP responds to the operation instruction through the mobile phone and obtains the operation result, such as executing step 201: moving the game character (i.e., game character A) to coordinates (0, 1). At the same time, when executing the operation instruction, and there is only one operation instruction in the time period corresponding to the current data frame, the game APP sends the operation instruction to the game server through a frame data packet, and the frame data packet carries its own frame packet number, such as 01. That is, execute step 202: send the frame data packet to the server.

[0038] After receiving the frame data packet, the game server can first cache the frame data packet in a preset cache area, such as a storage queue. When the corresponding time point arrives, that is, when the corresponding frame arrives, the frame data packet is executed or run. When the corresponding time point arrives, the game server obtains the frame data packet from the storage queue. It should be understood that whenever the corresponding time point arrives, the game server will take out the corresponding frame data packet from the storage queue in sequence to run or execute, thereby modifying the corresponding data in the game, such as the data of the game character. The game server parses the frame data packet, obtains the operation instruction, and obtains the operation result, such as step 203: the game character moves to the coordinate (0, 1).

[0039] It should be noted that the buffer area may be a fixed-length buffer queue that stores multiple frame data packets over a recent period of time (eg, 10 minutes).

[0040] For each data frame, if there are multiple operation instructions in the data frame, the multiple operation instructions can be sent, and the client can send the operation instructions at the same time and respond to the operation instructions to obtain the operation results, so as to improve the data synchronization effect.

[0041] 102: Store the correspondence between the first operation result and the first frame packet identifier in a corresponding storage queue.

[0042] For example, according to the above, at the same time, the game server caches the corresponding relationship between the frame packet number and the execution result, such as executing step 204: caching the game character corresponding to the frame packet identifier 01 (i.e., the frame packet number 01) to move to the coordinate (0, 1). It can be cached in another cache queue, i.e., the storage queue.

[0043] It should be noted that in addition to storage queues, other storage forms such as arrays may also be used. No excessive restrictions are made here. Any storage form that can store the corresponding relationship may fall within the protection scope of the embodiments of the present application.

[0044] 103: Send the first operation result to the corresponding multiple terminals via a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns the second operation instruction and the frame packet identifier corresponding to the operation result before the second operation instruction via a second frame data packet to verify the second operation instruction.

[0045] The second frame packet identifier is an identifier corresponding to the first frame packet identifier, such as a number. The identifier may be the same as the first frame packet identifier, or may be different, but there is a corresponding relationship. The second frame packet identifier corresponds to the operation instruction, and may also correspond to the execution result corresponding to the operation instruction. The second frame packet identifier is determined by the server, and may be the current frame identifier of the server as the second frame packet identifier.

[0046] For example, according to the foregoing, after the game server has finished caching, the operation instruction, such as moving the game character (i.e., game character A) to coordinates (0, 1), can be sent to other game clients (i.e., other client B) through a frame message packet, and the number of the other game clients can be multiple. That is, the frame message packet is sent to each other game client, and the frame message packet also carries the frame packet number corresponding to the operation instruction, such as 10. For example, execute step 205: send a frame message packet. It should also be noted that the frame packet identifier carried by the frame message packet can also be used to represent the identifier of the frame message packet itself. So that the game APP installed on other terminals receives the frame message packet, executes the frame message packet and returns other operation instructions corresponding to the operation result and the frame packet identifier corresponding to the operation result for verification. Among them, the specific execution steps of other terminals are as follows.

[0047] For example, after receiving the frame message packet, other game apps parse the frame message packet and obtain the operation result, such as the game character (i.e., game character A) moves to the coordinates (0, 1) and performs interpolation, and displays it on the mobile phone of other game apps (i.e., other clients) so that other game users can see the operation result. Other game apps record the frame packet number 10 of the operation result. The frame packet number can also be the corresponding frame packet number of the game character A of game user A, or become a frame number.

[0048] like Figure 2 As shown, after seeing the operation result, other game users B can execute operation instructions, such as attacking the game character at coordinates (0, 1), such as when the game character A moves to coordinates (0, 1). In the time period corresponding to the data frame, other game apps (i.e., other clients B) respond to the operation instruction through the mobile phone, that is, there is only one operation instruction in the data frame. Execute step 208: attack the game character at coordinates (0, 1). At the same time, other game apps send the operation instruction to the game server via a frame data packet, that is, execute step 211: send a frame data packet. In addition to carrying the operation instruction, the frame data packet also has the above-mentioned frame packet number 10, that is, the received operation result: the game character (i.e., game character A) moves to the frame packet number 10 corresponding to the coordinates (0, 1). At the same time, the frame data packet can also carry its own frame packet number, such as 002, to indicate the identification of its own frame packet.

[0049] In addition, before the game server receives the frame data packet, it can continue to receive the frame data packet sent by the game APP of game user A. For example, game user A continues to move game character A to coordinates (0, 2). Its game APP (i.e., client A) responds to the operation instruction and executes step 206: the game character (i.e., game character A) moves to coordinates (0, 2), and at the same time executes step 207: sending a frame data packet. The sending process is similar to that described above and will not be repeated here. After the game server (i.e., the server) receives the frame data packet, it is cached in the cache queue according to the above description to wait for execution. During execution, the game server parses the frame data packet, executes the operation instruction, and obtains the operation result, such as the server executes step 209: the game character (i.e., game character A) moves to coordinates (0, 2). Then, execute step 210: the game character corresponding to the cache frame packet identifier 02 moves to coordinates (0, 2). The specific execution means have been described above and will not be repeated here.

[0050] It should be noted that at this time, the game character A of the game user A is no longer at the coordinate (0, 1), but has moved to the coordinate (0, 2), but other game users do not know this and are still operating on the game character A at the coordinate (0, 1), such as attacking the game character A at the coordinate (0, 1).

[0051] After receiving the frame data packet returned by other terminals, the server needs to verify the frame data packet more accurately in order to more accurately determine the operation of the frame data packet, so as to improve the user experience.

[0052] Specifically, the method 100 also includes: receiving a second frame data packet returned by at least one terminal, and obtaining a frame packet identifier corresponding to an operation result before the second operation instruction in the second frame data packet; based on the frame packet identifier, performing operation verification on the second operation instruction carried by the second frame data packet; when the verification passes, sending the second operation result to the corresponding terminal.

[0053] Among them, based on the frame packet identifier, the second operation instruction carried by the second frame data packet is verified, including: if the frame packet identifier is the second frame packet identifier, then according to the correspondence between the second frame packet identifier and the first frame packet identifier and the correspondence between the first frame packet identifier and the first operation result, it is determined that the second operation instruction is an operation instruction for the first operation result, and the verification passes.

[0054] For example, according to the foregoing, since the game server processes the frame data packet sent by other game APPs according to the foregoing method, it will not be repeated here. It is only explained that the game server parses the frame data packet and obtains the frame packet identifier 01, that is, the frame packet number, that is, the game server executes step 212: obtains the frame packet identifier 01 in the frame data packet. After obtaining the operation result corresponding to the identifier, that is, the above-mentioned game character A moves to the coordinates (0, 1), step 213 is executed: the game character corresponding to the frame packet identifier 01 is obtained and moved to the coordinates (0, 1) for verification. Since the operation instruction obtained by the game server in the frame data packet is for the operation result of the game character moving to the coordinates (0, 1). Then it can be determined that the verification is passed. If the obtained operation result is that the game character moves to the coordinates (0, 2), the operation instruction in the frame data packet sent by other game APPs received by the game server does not match the obtained operation result, so the verification cannot pass. Or, if the game character A has never appeared at the coordinates (0, 1), it cannot be verified. After the verification is passed, the game server can execute the operation instructions in the frame data packet, such as attacking the game character A with coordinates (0, 1), to determine the second operation result.

[0055] Specifically, when the verification is passed, sending the second operation result to the corresponding terminal includes: executing the second operation instruction according to the first operation result, determining the second operation result generated by the second operation instruction on the first operation result; and sending the second operation result to the corresponding terminal.

[0056] For example, according to the foregoing, the game server executes the above operation instruction, and the attacking game character A moves to the coordinate (0, 1). Since it is the game character at the coordinate that is attacked, the attack will be successful. It should be understood that other game users are not accurate in attacking the game character A at the coordinate (0, 1). Then, this operation instruction is not directed to the game character A at the coordinate (0, 1), but to the wrong position, such as the point at the coordinate (0, 3). But in fact, the game character A is displayed at the coordinate (0, 1) on the mobile phone of other game users. At this time, even if the verification can be passed, the attack fails. Or it can be verified that it cannot be passed because the operation instruction is for the point at the coordinate (0, 3).

[0057] When the server verifies the received frame data packet, it can continue to repeat the steps described above. It can continue to send subsequent operation results, such as attacking game character A successfully, and game character A loses 3 blood points. Then these operation results can be returned to other game apps. The return method is also as described above, so I will not repeat it here.

[0058] Alternatively, if other game apps also send other frame data packets, or the frame data packets received by the game server contain other operation instructions, such as other game users, such as game character B of game user B moving to coordinates (2, 3), the operation results may also continue to be sent to other game apps via frame data packets.

[0059] Specifically, the second frame data packet also carries a third frame packet identifier representing its own frame data packet; wherein, when the verification is passed, the method 100 also includes: storing the correspondence between the second operation result and the third frame packet identifier; wherein, sending the second operation result to the corresponding terminal includes: sending the second operation result to the corresponding multiple terminals via a frame message packet, and the frame message packet carries a frame packet identifier corresponding to the third frame packet identifier.

[0060] Since this has been explained in detail above, I will not repeat it here. Just explain: the game server continues to send frame data packets. Since the game server mentioned above receives frame data packets from other game apps to attack game character A, the frame data packet has its own frame packet number 002 in addition to the frame packet number 01. Then the game server can continue to determine the corresponding other frame packet numbers based on this number, so that it can be carried when a frame message packet occurs later, and it can also be used as the number of the subsequent frame message packet. This cycle repeats.

[0061] The problem that the server verification data cannot be synchronized can be solved by the embodiment of the present application. However, since each client network may be connected to the server at different times, the frame identifier or frame packet identifier will not completely correspond one to one. Therefore, in order to ensure the verification effect, it is necessary to ensure that the client frame packet identifier corresponds to the server frame identifier.

[0062] Specifically, the method 100 further includes: receiving a frame start message packet sent by at least one terminal, and determining a frame packet start identifier of the frame start message packet; determining a current frame identifier of the server, and creating a correspondence between the frame packet start identifier and the frame identifier; and determining a frame packet identifier of the receiving terminal according to the correspondence between the frame packet start identifier and the frame identifier. That is, the second frame packet identifier is determined by the first frame packet identifier.

[0063] Since the frame packet identifiers or frame identifiers of the server and the client are identified in sequence, the identifier correspondence between the client and the server is determined based on the sequence. For example, initially, the client and the server differ by 3 frame identifiers or frame packet identifiers. When the client sends a frame packet identifier later, the server can convert the received frame packet identifier based on the 3 frame identifiers into the server's frame identifier.

[0064] More specifically, according to the corresponding relationship and the frame packet identifier of the sending terminal, the frame identifier corresponding to the server is determined; according to the corresponding relationship and the frame packet identifier corresponding to the server, the frame packet identifier of the receiving terminal is determined.

[0065] For example, according to the corresponding relationship and the terminal that sends the first frame packet identifier, the first frame identifier that is different from the first frame packet identifier relative to the server is determined; the second frame identifier is obtained based on the first frame packet identifier and the first frame identifier; according to the corresponding relationship and the terminal to which the second frame packet identifier is sent, the third frame identifier that is different from the second frame identifier relative to the terminal to which it is sent is determined; and the second frame packet identifier is obtained based on the third frame identifier.

[0066] The second frame identifier refers to the frame identifier of the server.

[0067] For example, according to the above, if Figure 3 As shown, game user A starts the game APP of the mobile phone, that is, client A. The mobile phone responds to the user's startup instruction, starts the game APP, and connects to the game server, that is, the server. Since it is just the beginning to connect to the game server, the game APP determines that the current frame packet identifier is 0, that is, the frame packet number is 0. Then the mobile phone starts the game APP, and the game APP starts to start, that is, execute step 301: start the client to determine the current frame packet starting identifier 0. Execute step 302: send a frame start message packet. After receiving the message packet, the game server determines its current frame identifier, such as executing step 303: recording the current frame identifier 100 of the server. The game server continues to receive the frame data packets sent by other game APPs as described above, and executes step 304: runs the frame data. It should be understood that when the game server runs the frame data, that is, when running the frame data packet, the frame identifier of the game server changes accordingly. For example, the frame identifier of the frame start message packet received by the current game server is 100. However, as time changes, the frame identifier of the game server also changes.

[0068] At the same time, the game server can also continue to receive frame start message packets from other game apps. The specific method is described above and will not be repeated here. Figure 3As shown, the game server, i.e., the server, executes step 306: receiving a frame start message packet. Then, step 307 is executed: recording the current frame identifier 101 of the server. The subsequent game server can receive a frame data packet sent by a client that has sent a frame start message packet. The specific frame data packet receiving and processing process is similar to that described above, and will not be repeated here. For example, the client A of the game APP executes step 308: the game character moves to the coordinates (0, 1), and at the same time executes step 309: sending a frame data packet, which carries an operation instruction, such as a moving operation instruction. After the game server receives the frame data packet, before processing or caching, the frame identifier or frame packet identifier is converted, and the frame packet identifier of the frame data packet can be 10. The game server executes step 310: converting the frame packet identifier 10 of the frame data packet to the frame identifier 110 of the server, i.e., the initial 100+10=110, i.e., the second frame identifier. It should be understood that since the frame packet starts with an identifier 0, the difference identifier is 10, i.e., 10-0=10, i.e., the first frame identifier. Then, according to the method described above, the frame message packet is sent. The game server executes step 311: the game character corresponding to the frame identifier 110 is moved to the coordinates (0, 1). Before sending the frame message packet, the game server also needs to convert the frame packet identifier or frame identifier based on the other game APPs to which it is sent. Based on the above, when the other game APPs, that is, other clients B, have their starting frame packet identifiers corresponding to the frame identifier 110 of the game server. Then the frame packet identifier corresponding to the operation result: the game character moves to the coordinates (0, 1) in the frame message packet is 9 or a frame identifier, which can correspond to the above-mentioned second frame packet identifier, that is, 110-101=9. It should be understood that since the frame packet starts with an identifier of 0, 9-0=9, 9 is also the third frame identifier, and the game server executes step 312 to convert the frame identifier 110 into the frame packet identifier 9 of other clients. It should be understood that for different other clients, the corresponding frame packet identifiers may be different. Here, only one method is selected for example. For actual scenarios, there should be multiple methods. Afterwards, the game server executes step 313: sending a frame message packet based on the frame packet identifier 9. This will not be described in detail here.

[0069] Usually, the client on the smart terminal will change the frame rate to get ahead of the server. That is, within the predetermined time, the running frame rate of the client installed on the terminal is greater than the running frame rate of the server within the preset range, so that the server will cache 1-2 client frame data packets in the cache for processing. In this way, the performance of the client can be optimized and made smoother in the case of network fluctuations. However, the cached frame data packets should not be too many, which will cause the server data to be too delayed from the client. Therefore, in the case of excessive delay, the client's frame rate needs to be adjusted to better optimize the client's performance.

[0070] Specifically, the method 100 also includes: obtaining the cache quantity of the currently cached frame data packets, and sending the cache quantity to the corresponding terminal, so that the terminal determines whether to change its own operating frame rate according to the cache quantity and the target quantity within a preset time.

[0071] As can be seen from the foregoing, within a predetermined time, the running frame rate of the client installed on the terminal is greater than the running frame rate of the server, so as to ensure that the client optimizes the performance of the client in the case of network fluctuations to make it smoother. In order to further optimize and maintain the smooth performance, the frame rate can also be adjusted.

[0072] For example, according to the foregoing, the server determines the number of frame data packets to be cached for the client of each terminal connected to the network, and sends it to the corresponding client. After receiving it, the client determines the target number of frame data packets to be cached in the network delay fluctuation state in the recent period of time, such as within 10 seconds. The determination method can be: record the delay in the recent period of time, such as the ping (Packet Internet Groper) value of each second within 10 seconds. Then calculate the standard deviation of the ping value, and calculate the target number of corresponding frame data packets cached according to the size of the standard deviation. If the target number is greater than the current server cache number, the client performs a frame chasing operation. For example, the client runs at a faster frame rate for a period of time, such as 10s. If the target number is less than the current server cache number, the client performs a frame reduction operation, and the client runs at a smaller frame rate for a period of time, such as 10s. Eventually, the target number of the client is consistent with the cache number. Or,

[0073] Specifically, the method 100 also includes: obtaining the cache quantity of the currently cached frame data packets; determining the target number of frame data packets of the terminal within a preset time; determining whether to change the terminal's own operating frame rate based on the cache quantity and the target quantity; and if so, sending a message to the terminal to change the operating frame rate.

[0074] The server determines whether to change the running frame rate of the terminal itself.

[0075] Determining the target number of frame data packets of the terminal within the preset time may include: receiving the target number sent by the terminal. The method for the terminal to determine the target number has been described above and will not be repeated here.

[0076] After the server determines the target number, it can determine whether the terminal itself changes the running frame rate according to the method described above.

[0077] Among them, the server determines whether to change the terminal's own operating frame rate, including: if the cache quantity is greater than the target quantity, determine to reduce the terminal's own operating frame rate; if so, send a message to the terminal to change the operating frame rate, including: sending a message to reduce the operating frame rate to the terminal.

[0078] Since it has been explained in the previous text, it will not be repeated here. Just explain: after the server determines that the terminal itself needs to reduce the operating frame rate according to the previous method, it sends a message indicating the reduction of the operating frame rate to the terminal. After the terminal receives the message, it reduces its own operating frame rate. For example, the client in the terminal runs at a smaller frame rate for a period of time, such as 10s. Eventually, the target number of clients is consistent with the cache number. Since the server determines whether the terminal (that is, the client in the terminal) needs to change the operating frame rate. The server can make determinations regularly until the target number of clients is consistent with the cache number.

[0079] In addition, the server determines whether to change the terminal's own operating frame rate, including: if the cache quantity is less than the target quantity, determining to increase the terminal's own operating frame rate; wherein, if so, sending a message to the terminal to change the operating frame rate, including: sending a message to the terminal to increase the operating frame rate.

[0080] The implementation method here is similar to the one described above, so I will not go into details.

[0081] Based on the above similar inventive concept, Figure 4 This is a flow chart of a data synchronization verification method of an exemplary embodiment of the present application. The method 400 provided in the embodiment of the present application can be executed by a terminal, such as a client in a mobile phone. Within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range. The method 400 includes the following steps:

[0082] 401: receiving a frame message packet, where the frame message packet carries an operation result and a frame packet identifier corresponding to the operation result.

[0083] 402: Display the operation result and receive the operation instruction for the operation result.

[0084] 403: Return the operation instruction and the frame packet identifier corresponding to the operation result through the frame data packet to verify the operation instruction.

[0085] Since steps 401-403 have been described above, they will not be repeated here. It is only explained that the operation result of step 402 is the first operation result. The operation instruction refers to the second operation instruction. The frame packet identifier in step 401 can be the identifier of the frame message packet itself, or it can be the frame identifier corresponding to the operation result.

[0086] In addition, the method 400 also includes: receiving the cache quantity of the currently cached frame data packets of the server; determining the target quantity of the frame data packets within a preset time; and determining whether to change its own operating frame rate based on the cache quantity and the target quantity.

[0087] Specifically, according to the cache quantity and the target quantity, determining whether to change its own running frame rate includes: if the cache quantity is greater than the target quantity, determining to reduce its own running frame rate.

[0088] In addition, the method 400 further includes: if the cache quantity is less than the target quantity, determining to increase the own running frame rate.

[0089] Since this has been explained in the previous article, I will not repeat it here.

[0090] In addition, for the contents not described in detail in the method 400 , reference can also be made to the various steps in the above method 100 .

[0091] Based on the above similar inventive concept, another exemplary embodiment of the present application provides a schematic diagram of a data synchronization system. The system provided by the embodiment of the present application may include: a service end, such as a server, and a terminal, such as a client of the terminal. Within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range.

[0092] The server receives a first frame data packet, which carries a first operation instruction and a first frame packet identifier, executes the first operation instruction, and obtains a first operation result; stores the correspondence between the operation result and the first frame packet identifier in a corresponding storage queue; and sends the operation result to the corresponding multiple terminals via a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier.

[0093] After receiving the frame message packet, the terminal displays the operation result and receives a second operation instruction for the operation result; returns the second operation instruction and the frame packet identifier corresponding to the operation result through the second frame data packet to verify the second operation instruction.

[0094] The server determines the number of buffers of the currently buffered frame packets.

[0095] The terminal receives the cache quantity of the currently cached frame data packets from the server; determines the target quantity of the frame data packets within a preset time; and determines whether to change its own operating frame rate according to the cache quantity and the target quantity.

[0096] The terminal determines to reduce its own operating frame rate if the buffer quantity is greater than the target quantity.

[0097] The terminal determines to increase its own operating frame rate if the buffer quantity is less than the target quantity.

[0098] Since the specific implementation of the system has been described in detail above, it will not be repeated here.

[0099] In addition, the contents that are not described in detail in this system can also refer to the various steps in the above method 100.

[0100] Figure 5 A schematic diagram of the structural framework of a data synchronization verification device provided for an exemplary embodiment of the present application. The device 500 can be applied to a service device, such as a server. Within a predetermined time, the operating frame rate of the client installed in the terminal is greater than the operating frame rate of the server within a preset range. The device 500 includes a receiving module 501, a storage module 502, and a sending module 503; the functions of each module are described in detail below:

[0101] The receiving module 501 is used to receive a first frame data packet, the frame data packet carries a first operation instruction and a first frame packet identifier, execute the first operation instruction, and obtain a first operation result.

[0102] The storage module 502 is used to store the corresponding relationship between the first operation result and the first frame packet identifier in a corresponding storage queue.

[0103] The sending module 503 is used to send the first operation result to the corresponding multiple terminals through a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns the second operation instruction and the frame packet identifier corresponding to the operation result before the second operation instruction through the second frame data packet to verify the second operation instruction.

[0104] In addition, the receiving module 501 is used to receive a second frame data packet returned by at least one terminal, and obtain a frame packet identifier corresponding to the operation result before the second operation instruction in the second frame data packet; the device 500 also includes: a verification module, which is used to perform operation verification on the second operation instruction carried by the second frame data packet based on the frame packet identifier; and a sending module 503, which is used to send the second operation result to the corresponding terminal after the verification is passed.

[0105] In addition, the verification module is used to include: if the frame packet identifier is the second frame packet identifier, then according to the correspondence between the second frame packet identifier and the first frame packet identifier and the correspondence between the first frame packet identifier and the first operation result, determine that the second operation instruction is an operation instruction for the first operation result, and then the verification passes.

[0106] In addition, the sending module 503 includes: a first determining unit, used to execute the second operation instruction according to the first operation result, and determine the second operation result generated by the second operation instruction on the first operation result; and a sending unit, used to send the second operation result to the corresponding terminal.

[0107] Among them, the second frame data packet also carries a third frame packet identifier representing its own frame data packet; wherein, when the verification is passed, the storage module 502 is also used to store the correspondence between the second operation result and the third frame packet identifier; the sending unit is also used to send the second operation result to the corresponding multiple terminals via a frame message packet, and the frame message packet carries a frame packet identifier corresponding to the third frame packet identifier.

[0108] In addition, the receiving module 501 is also used to receive a frame start message packet sent by at least one terminal and determine the frame packet start identifier of the frame start message packet; the device 500 also includes a determination module, which is used to determine the current frame identifier of the server and create a correspondence between the frame packet start identifier and the frame identifier; based on the correspondence between the frame packet start identifier and the frame identifier, determine the frame packet identifier of the terminal to be received.

[0109] Specifically, the determination module includes: a second determination unit, which is used to determine the frame identifier corresponding to the server according to the corresponding relationship and the frame packet identifier of the sending terminal; and determine the frame packet identifier of the receiving terminal according to the corresponding relationship and the frame packet identifier of the server.

[0110] In addition, the device 500 further includes: an acquisition module, which is used to acquire the cache quantity of the currently cached frame data packets and send the cache quantity to the corresponding terminal, so that the terminal determines whether to change its own operating frame rate according to the cache quantity and the target quantity within the preset time. Or,

[0111] The acquisition module is also used to obtain the cache quantity of the currently cached frame data packets; the determination module is also used to determine the target quantity of the frame data packets of the terminal within a preset time; based on the cache quantity and the target quantity, it is determined whether to change the terminal's own operating frame rate; if so, the sending module 503 sends a message to the terminal to change the operating frame rate.

[0112] Specifically, the determination module is used to determine to reduce the operating frame rate of the terminal itself if the cache quantity is greater than the target quantity; wherein the sending module 503 is used to send a message to reduce the operating frame rate to the terminal.

[0113] Specifically, the determination module is used to determine to increase the operating frame rate of the terminal itself if the cache quantity is less than the target quantity; wherein the sending module 503 is used to send a message to increase the operating frame rate to the terminal.

[0114] Figure 6A schematic diagram of the structural framework of a data synchronization verification device provided for an exemplary embodiment of the present application. The device 600 can be applied to a terminal device, such as a client in a terminal device. Within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range. The device 600 includes a receiving module 601, a display module 602, and a return module 603; the functions of each module are described in detail below:

[0115] The receiving module 601 is used to receive a frame message packet, where the frame message packet carries an operation result and a frame packet identifier corresponding to the operation result.

[0116] The display module 602 is used to display the operation result and receive the operation instruction for the operation result.

[0117] The return module 603 is used to return the operation instruction and the frame packet identifier corresponding to the operation result through the frame data packet to verify the operation instruction.

[0118] In addition, the receiving module 601 is also used to receive the cache number of frame data packets currently cached by the server; the device 600 also includes: a determination module, used to determine the target number of frame data packets within a preset time; based on the cache number and the target number, determine whether to change its own operating frame rate.

[0119] In addition, the determination module is used to determine to reduce its own operating frame rate if the buffer quantity is greater than the target quantity.

[0120] In addition, the determination module is used to determine to increase its own operating frame rate if the buffer quantity is less than the target quantity.

[0121] In addition, the contents not described in detail in the present device 600 may also refer to the various steps in the above-mentioned device 500.

[0122] The above describes Figure 5 The internal functions and structure of the device 500 shown, in one possible design, Figure 5 The structure of the device 500 shown can be implemented as a computing device, such as a server. Within a predetermined time, the running frame rate of the client installed in the terminal is greater than the running frame rate of the server within a preset range. Figure 7 As shown, the device 700 is used to perform data transmission between a first device and a second device, and the device 700 may include: a memory 701, a processor 702, and a communication component 703;

[0123] The memory 701 is used to store computer programs.

[0124] The processor 702 is configured to execute a computer program for:

[0125] The communication component 703 is used to receive a first frame data packet, where the frame data packet carries a first operation instruction and a first frame packet identifier.

[0126] The processor 702 is used to execute the computer program to: execute the first operation instruction to obtain the first operation result; and store the corresponding relationship between the first operation result and the first frame packet identifier in a corresponding storage queue.

[0127] The communication component 703 is used to send the first operation result to the corresponding multiple terminals through a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns the second operation instruction and the frame packet identifier corresponding to the operation result of the second operation instruction through the second frame data packet to verify the second operation instruction.

[0128] In addition, the communication component 703 is further used to: receive a second frame data packet returned by at least one terminal. The processor 702 is further used to obtain a frame packet identifier corresponding to an operation result before the second operation instruction in the second frame data packet; based on the frame packet identifier, perform operation verification on the second operation instruction carried by the second frame data packet; when the verification is passed, the communication component 703 is further used to: send the second operation result to the corresponding terminal.

[0129] Specifically, processor 702 is specifically used to: if the frame packet identifier is the second frame packet identifier, then according to the correspondence between the second frame packet identifier and the first frame packet identifier and the correspondence between the first frame packet identifier and the first operation result, determine that the second operation instruction is an operation instruction for the first operation result, and then the verification passes.

[0130] Specifically, the processor 702 is specifically used to: execute the second operation instruction according to the first operation result, and determine the second operation result generated by the second operation instruction on the first operation result; the communication component 603 is used to: send the second operation result to the corresponding terminal.

[0131] Among them, the second frame data packet also carries a third frame packet identifier representing its own frame data packet; wherein, when the verification is passed, the processor 702 is also used to: store the correspondence between the second operation result and the third frame packet identifier; the communication component 703 is specifically used to: send the second operation result to the corresponding multiple terminals via a frame message packet, and the frame message packet carries a frame packet identifier corresponding to the third frame packet identifier.

[0132] In addition, the communication component 703 is also used to: receive a frame start message packet sent by at least one terminal. In addition, the processor 702 is specifically used to: determine the frame packet start identifier of the frame start message packet; determine the current frame identifier of the server, and create a correspondence between the frame packet start identifier and the frame identifier; determine the frame packet identifier of the terminal to be received based on the correspondence between the frame packet start identifier and the frame identifier.

[0133] Specifically, the processor 702 is specifically used to: determine the frame identifier corresponding to the server according to the corresponding relationship and the frame packet identifier of the sending terminal; determine the frame packet identifier of the receiving terminal according to the corresponding relationship and the frame packet identifier of the server.

[0134] In addition, the processor 702 is further configured to obtain the cache quantity of the currently cached frame data packets and send the cache quantity to the corresponding terminal, so that the terminal determines whether to change its own operating frame rate according to the cache quantity and the target quantity within a preset time. Or,

[0135] In addition, processor 702 is also used to: obtain the cache quantity of the currently cached frame data packets; determine the target number of frame data packets of the terminal within a preset time; determine whether to change the terminal's own operating frame rate based on the cache quantity and the target quantity; if so, send a message to the terminal to change the operating frame rate.

[0136] Specifically, the processor 702 is specifically configured to: if the cache quantity is greater than the target quantity, determine to reduce the operating frame rate of the terminal itself; and send a message to reduce the operating frame rate to the terminal.

[0137] Specifically, the processor 702 is specifically configured to: if the cache quantity is less than the target quantity, determine to increase the operating frame rate of the terminal itself; and send a message to the terminal to increase the operating frame rate.

[0138] In addition, an embodiment of the present invention provides a computer storage medium, when the computer program is executed by one or more processors, causing the one or more processors to implement Figure 1 The present invention provides steps of a method for synchronously verifying data in a method embodiment.

[0139] The above describes Figure 6 The internal functions and structure of the device 600 shown, in one possible design, Figure 6 The structure of the device 600 shown can be implemented as a computing device, such as a terminal. Within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range. Figure 8 As shown, the device 800 is used to perform data transmission between a first device and a second device, and the device 800 may include: a memory 801, a processor 802, and a communication component 803;

[0140] The memory 801 is used to store computer programs.

[0141] The communication component 803 is used to receive a frame message packet, where the frame message packet carries an operation result and a frame packet identifier corresponding to the operation result.

[0142] The processor 802 is used to execute the computer program to display the operation result and receive the operation instruction for the operation result.

[0143] The communication component 803 is used to return the operation instruction and the frame packet identifier corresponding to the operation result through the frame data packet to verify the operation instruction.

[0144] In addition, the communication component 803 is also used to: receive the cache number of frame data packets currently cached by the server; the processor 802 is also used to: determine the target number of frame data packets within a preset time; and determine whether to change its own operating frame rate based on the cache number and the target number.

[0145] In addition, the processor 802 is further configured to: if the cache quantity is greater than the target quantity, determine to reduce its own operating frame rate.

[0146] In addition, the processor 802 is further configured to: if the cache quantity is less than the target quantity, determine to increase its own running frame rate.

[0147] In addition, the contents not described in detail in the present device 800 may also refer to the various steps in the above-mentioned device 700.

[0148] In addition, an embodiment of the present invention provides a computer storage medium, when the computer program is executed by one or more processors, causing the one or more processors to implement Figure 4 The present invention provides steps of a method for synchronously verifying data in a method embodiment.

[0149] In addition, in some of the processes described in the above embodiments and the accompanying drawings, multiple operations that appear in a specific order are included, but it should be clearly understood that these operations may not be executed in the order in which they appear in this article or executed in parallel, and the sequence numbers of the operations, such as 201, 202, 203, etc., are only used to distinguish between different operations, and the sequence numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that the descriptions of "first", "second", etc. in this article are used to distinguish different messages, devices, modules, etc., do not represent the order of precedence, and do not limit the "first" and "second" to be different types.

[0150] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without paying creative labor.

[0151] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by adding a necessary general hardware platform, and of course can also be implemented by combining hardware and software. Based on such an understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a computer product, and the present invention can be in the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0152] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable multimedia data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable multimedia data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0153] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable multimedia data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0154] These computer program instructions may also be loaded onto a computer or other programmable multimedia data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.

[0155] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0156] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0157] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.

[0158] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A data synchronization verification method, characterized in that: Applied to the server, within a predetermined time, the running frame rate of the client installed in the terminal is greater than the running frame rate of the server within a preset range, and the method includes: Receive a first frame of data packets, where the first frame of data packets carries a first operation instruction and a first frame packet identifier, execute the first operation instruction, and obtain a first operation result; Storing the correspondence between the first operation result and the first frame packet identifier in a corresponding cache queue; Sending the first operation result to the corresponding multiple terminals through a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns a second operation instruction and a frame packet identifier corresponding to the operation result before the second operation instruction through a second frame data packet; If the frame packet identifier is the second frame packet identifier, then based on the correspondence between the second frame packet identifier and the first frame packet identifier and the correspondence between the first frame packet identifier and the first operation result, it is determined that the second operation instruction is an operation instruction for the first operation result, and the verification is successful.

2. The method according to claim 1, characterized in that: The method further comprises: receiving a second frame data packet returned by at least one terminal, and obtaining a frame packet identifier corresponding to an operation result before the second operation instruction in the second frame data packet; Based on the frame packet identifier, performing operation verification on the second operation instruction carried by the second frame data packet; When the verification is passed, the second operation result is sent to the corresponding terminal.

3. The method according to claim 1, characterized in that The method further comprises: receiving a frame start message packet sent by at least one terminal, and determining a frame packet start identifier of the frame start message packet; Determine the current frame identifier of the server, and create a corresponding relationship between the frame packet start identifier and the frame identifier; The frame packet identifier of the terminal to be received is determined according to the corresponding relationship between the frame packet start identifier and the frame identifier.

4. The method according to claim 1, characterized in that: The method further comprises: Obtaining the cache quantity of the currently cached frame data packets, and sending the cache quantity to the corresponding terminal, so that the terminal determines whether to change its own operating frame rate according to the cache quantity and the target quantity within a preset time; or, Get the number of currently cached frame packets; Determine the target number of frame data packets of the terminal within a preset time; Determining whether to change the operating frame rate of the terminal itself according to the cache quantity and the target quantity; If yes, a message to change the running frame rate is sent to the terminal.

5. The method according to claim 4, characterized in that The determining whether to change the operating frame rate of the terminal itself includes: If the cache quantity is greater than the target quantity, determining to reduce the operating frame rate of the terminal itself; Wherein, if yes, sending a message to the terminal to change the running frame rate includes: sending a message to the terminal to reduce the running frame rate.

6. The method according to claim 4, characterized in that The determining whether to change the operating frame rate of the terminal itself includes: If the cache quantity is less than the target quantity, determining to increase the operating frame rate of the terminal itself; Wherein, if so, sending a message to the terminal to change the running frame rate includes: sending a message to the terminal to increase the running frame rate.

7. A data synchronization verification method, characterized in that: Applied to a terminal, within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range, and the method includes: Receive a frame message packet sent by the server, the frame message packet carrying a first operation result obtained by executing a first operation instruction and a second frame packet identifier, wherein the second frame packet identifier corresponds to the first frame packet identifier corresponding to the first operation result; Displaying the first operation result, and receiving a second operation instruction for the first operation result; The second operation instruction and the second frame packet identifier corresponding to the first operation result before the second operation instruction are returned to the server through a frame data packet, so that the server can verify that the second operation instruction is an operation instruction for the first operation result.

8. The method according to claim 7, characterized in that The method further comprises: The number of frame packets currently buffered by the receiving server; Determine the target number of frame packets within a preset time; Whether to change its own running frame rate is determined according to the buffer quantity and the target quantity.

9. The method according to claim 8, characterized in that The determining whether to change the running frame rate of the self according to the cache quantity and the target quantity includes: If the buffer quantity is greater than the target quantity, it is determined to reduce the running frame rate thereof.

10. The method according to claim 9, characterized in that The method further comprises: If the buffer quantity is less than the target quantity, it is determined to increase the running frame rate thereof.

11. A data synchronization system, characterized in that: Including: a server and a terminal, within a predetermined time, the operating frame rate of the terminal is greater than the operating frame rate of the server within a preset range: The server receives a first frame of data packets, the first frame of data packets carrying a first operation instruction and a first frame of data packet identifier, executes the first operation instruction, and obtains a first operation result; Storing the correspondence between the first operation result and the first frame packet identifier in a corresponding storage queue; Sending the first operation result to the corresponding multiple terminals through a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier; The terminal, after receiving the frame message packet, displays the first operation result and receives a second operation instruction for the first operation result; Returning the second operation instruction and a second frame packet identifier through a second frame data packet, where the second frame packet identifier corresponds to the first frame packet identifier corresponding to the first operation result; The server is also used to: if the second frame data packet contains the second frame packet identifier, then based on the correspondence between the second frame packet identifier and the first frame packet identifier and the correspondence between the first frame packet identifier and the first operation result, determine that the second operation instruction is an operation instruction for the first operation result, and the verification is successful.

12. A computing device, characterized in that: Memory, processor, and communication components; The memory is used to store computer programs; The communication component is used to receive a first frame data packet, where the first frame data packet carries a first operation instruction and a first frame packet identifier; The processor is used to execute the computer program to: execute a first operation instruction and obtain a first operation result; Storing the correspondence between the first operation result and the first frame packet identifier in a corresponding storage queue; The communication component is used to send the first operation result to the corresponding multiple terminals through a frame message packet, and the frame message packet carries a second frame packet identifier corresponding to the first frame packet identifier, so that after receiving the frame message packet, the terminal returns a second operation instruction and a frame packet identifier corresponding to the operation result of the second operation instruction through a second frame data packet; The processor is further configured to: if the second frame data packet includes the second frame packet identifier, determine, based on a correspondence between the second frame packet identifier and the first frame packet identifier and a correspondence between the first frame packet identifier and the first operation result, that the second operation instruction is an operation instruction for the first operation result, and the verification is passed; Wherein, within a predetermined time, the running frame rate of the client installed in the terminal is greater than the running frame rate of the server within a preset range.

13. A computing device, characterized in that: Memory, processor, and communication components; The memory is used to store computer programs; The communication component is used to receive a frame message packet sent by the server, the frame message packet carrying a first operation result generated by executing a first operation instruction and a second frame packet identifier, the second frame packet identifier corresponding to the first frame packet identifier corresponding to the first operation result; The processor is configured to execute the computer program to: Displaying the first operation result, and receiving a second operation instruction for the first operation result; The communication component is used to return the second operation instruction and the second frame packet identifier corresponding to the first operation result before the second operation instruction to the server through a frame data packet, so that the server can verify that the second operation instruction is an operation instruction for the first operation result, and within a predetermined time, the terminal's operating frame rate is greater than the server's operating frame rate within a preset range.

14. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by one or more processors, the one or more processors are caused to implement the steps of the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Maintaining synchronization of encryption process across devices by sending frame numbers

    CN107431832A

  • Processing method related to network game equipment identification code, central server and storage medium

    CN107485857A