Maintain persistent connections between servers and mobile clients
AssigneeFacebook, Inc.
InventorsPeter Daniel Brook, Mohit Talwar
Life of this patent
Estimating the term…
Abstract
In one embodiment, a method includes iteratively waiting for a time interval; sending a keep-alive message from a first computing device to a second computing device; and incrementing a current value of the time interval when the first computing device receives from the second computing device a response to a current keep-alive message sent during the current iteration, until the first computing device does not receive from the second computing device any responses to the current keep-alive message sent during the current iteration; and setting the current value of the time interval to a previous value of the time interval from an immediately-previous iteration.
Claims18
A method comprising:
- determining an initial value for a time interval for sending keep-alive messages from a client computing device connected to a server computing device on a particular one of a plurality of generations of cellular data connection, wherein the time interval is based on an average value or a median value of keep-alive message time interval values determined from previous connections between the server computing device and one or more other computing devices different from the client computing device on the particular one of the plurality of generations of cellular data connection;
- and
- iteratively:
- waiting for the time interval;
- sending a keep-alive message from the client computing device to the server computing device;
- and
- incrementing a current value of the time interval when the client computing device receives from the server computing device a response to a current keep-alive message sent during a current iteration, until the client computing device does not receive from the server computing device any responses to the current keep-alive message sent during the current iteration;
- and
- setting the current value of the time interval to a previous value of the time interval from an immediately-previous iteration.
One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
- determine an initial value for a time interval for sending keep-alive messages from a client computing device connected to a server computing device on a particular one of a plurality of generations of cellular data connection, wherein the time interval is based on an average value or a median value of keep-alive message time interval values determined from previous connections between the server computing device and one or more other computing devices different from the client computing device on the particular one of the plurality of generations of cellular data connection;
- and
- iteratively:
- wait for the time interval;
- send a keep-alive message from the client computing device to the server computing device;
- and
- increment a current value of the time interval when the client computing device receives from the server computing device a response to a current keep-alive message sent during a current iteration, until the client computing device does not receive from the server computing device any responses to the current keep-alive message sent during the current iteration;
- and
- set the current value of the time interval to a previous value of the time interval from an immediately-previous iteration.
A client computing device comprising:
- one or more processors;
- and
- a memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:
- determine an initial value for a time interval for sending keep-alive messages from a client computing device connected to a server computing device on a particular one of a plurality of generations of cellular data connection, wherein the time interval is based on an average value or a median value of keep-alive message time interval values determined from previous connections between the server computing device and one or more other computing devices different from the client computing device on the particular one of the plurality of generations of cellular data connection;
- and
- iteratively:
- wait for the time interval;
- send a keep-alive message from the client computing device to the server computing device;
- and
- increment a current value of the time interval when the client computing device receives from the server computing device a response to a current keep-alive message sent during the current iteration, until the client computing device does not receive from the server computing device any responses to a current keep-alive message sent during the current iteration;
- and
- set the current value of the time interval to a previous value of the time interval from an immediately-previous iteration.
Dependencies are inferred from the claim text.