IP Library Granted Patent US 9,479,618
Granted Patent B2
US 9,479,618 · App. 14/225,333 · Granted Oct 25, 2016

Mechanism for handling user input loss that occurs during transmission from a client device to a remote server using ring buffer messages in conjunction with UDP

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,479,618
App. No.
14/225,333
Granted
Oct 25, 2016
Kind
B2
Abstract

A method for handling user input loss from a client device to a remote server using user datagram protocol (UDP), includes receiving a newly generated user input command at the client device, removing a previously generated user input command located at a front of the ring buffer from the ring buffer, shifting one or more other previously generated user input commands towards the front of the ring buffer, placing the newly generated user input command at an end of a ring buffer, and sending a first ring buffer message containing the one or more other previously generated input commands and the newly generated user input command to the remote server.

Claims (32)

1. A method for handling user input loss from a client device to a remote server using user datagram protocol (UDP), comprising:

receiving a newly generated user input command at the client device; and

in response to receiving the newly generated user input command:

removing a previously generated user input command located at a front of a ring buffer of the client device from the ring buffer;

shifting one or more other previously generated user input commands located in the ring buffer towards the front of the ring buffer;

placing the newly generated user input command at an end of the ring buffer; and

sending, using UDP, a first ring buffer message containing the one or more other previously generated user input commands and the newly generated user input command to the remote server.

2. The method of claim 1 , wherein shifting the one or more other previously generated user input commands comprises logically shifting the one or more other previously generated user input commands.

3. The method of claim 1 , wherein placing the newly generated user input command at the end of the ring buffer comprises logically placing the newly generated user input command at the end of the ring buffer.

4. The method of claim 1 , wherein the first ring buffer message is resent to the remote server if another newly generated user input command is not received at the client device within a threshold period of time.

5. The method of claim 4 , wherein the threshold period of time is set to a value that minimizes a latency of content being displayed at the client device in correspondence to the newly generated user input command.

6. The method of claim 1 , wherein the ring buffer is updated with another newly generated user input command that is placed at the end of the ring buffer and, in response to receiving the another newly generated user input command, a second ring buffer message corresponding to the updated ring buffer is sent to the remote server.

7. The method of claim 6 , wherein the second ring buffer message is sent to the remote server regardless of whether or not the first ring buffer message is received at the remote server.

8. The method of claim 1 , wherein the ring buffer has a size of N storage locations.

9. The method of claim 8 , wherein the newly generated user input command placed at the end of the ring buffer will have at least N chances to be recovered at the remote server.

10. The method of claim 1 , wherein the newly generated user input command and the one or more other previously generated user input commands each have a sequence identifier indicating a sequence order.

11. A computer program product embodied on a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method for handling user input loss from a client device to a remote server using user datagram protocol (UDP), comprising:

receiving a newly generated user input command at the client device;

in response to receiving the newly generated user input command:

removing a previously generated user input command located at a front of a ring buffer of the client device from the ring buffer;

shifting one or more other previously generated user input commands located in the ring buffer towards the front of the ring buffer;

placing the newly generated user input command at an end of the ring buffer; and

sending, using UDP, a first ring buffer message containing the one or more other previously generated user input commands and the newly generated user input command to the remote server.

12. The computer program product of claim 11 , wherein shifting the one or more other previously generated user input commands comprises logically shifting the one or more other previously generated user input commands.

13. The computer program product of claim 11 , wherein placing the newly generated user input command at the end of the ring buffer comprises logically placing the newly generated user input command at the end of the ring buffer.

14. The computer program product of claim 11 , wherein the first ring buffer message is resent to the remote server if another newly generated user input command is not received at the client device within a threshold period of time.

15. The computer program product of claim 14 , wherein the threshold period of time is set to a value that minimizes a latency of content being displayed at the client device in correspondence to the newly generated user input command.

16. The computer program product of claim 11 , wherein the ring buffer is updated with another newly generated user input command that is placed at the end of the ring buffer and, in response to receiving the another newly generated user input command, a second ring buffer message corresponding to the updated ring buffer is sent to the remote server.

17. The computer program product of claim 16 , wherein the second ring buffer message is sent to the remote server regardless of whether or not the first ring buffer message is received at the remote server.

18. The computer program product of claim 11 , wherein the ring buffer has a size of N storage locations.

19. The computer program product of claim 18 , wherein the newly generated user input command placed at the end of the ring buffer will have at least N chances to be recovered at the remote server.

20. The computer program product of claim 11 , wherein the newly generated user input command and the one or more other previously generated user input commands each have a sequence identifier indicating a sequence order.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2014
From: CIINOW, INC.
To: GOOGLE INC.
Reel/Frame 033621/0128 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2014
From: BISCHOFF, JUSTIN PAUL; RAUT, DEVENDRA
To: CIINOW, INC.
Reel/Frame 032731/0839 →