SYSTEMS AND METHODS FOR TRANSFERRING MESSAGE DATA
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, are described for providing messages to client devices. In certain examples, the method includes receiving a stream of messages at a client device, wherein the stream of messages comprises a message transfer rate. The method may also include determining, by one or more computer processors, a download rate for an application client of the client device, and providing, by the one or more computer processors, the stream of messages to the application client at the message transfer rate when the message transfer rate is less than or equal to the download rate. The method may also include storing, by the one or more computer processors, the stream of messages in a buffer on the client device when the message transfer rate is greater than the download rate.
1 . A method, comprising:
receiving a stream of messages at a client device,
wherein the stream of messages comprises a message transfer rate;
determining, by one or more computer processors, a download rate for an application client of the client device;
providing, by the one or more computer processors, the stream of messages to the application client at the message transfer rate when the message transfer rate is less than or equal to the download rate; and
storing, by the one or more computer processors, the stream of messages in a buffer on the client device when the message transfer rate is greater than the download rate.
2 . The method of claim 1 , wherein providing the stream of messages to the application client at the message transfer rate comprises:
providing the stream of messages to the application client without storing the messages in the buffer when the message transfer rate is less than or equal to the download rate.
3 . The method of claim 1 , further comprising:
monitoring download capabilities of the application client; and
based thereon, determining that the application client is unable to download the stream of messages at the message transfer rate.
4 . The method of claim 1 , further comprising:
providing messages in the buffer to the application client when the message transfer rate is greater than the download rate.
5 . The method of claim 1 , further comprising:
deleting messages stored in the buffer when the buffer is full and the application client is unable to download additional messages.
6 . The method of claim 5 , wherein messages stored in the buffer for a longest period of time are deleted.
7 . The method of claim 1 , further comprising:
allowing a stored quantity of messages in the buffer to decrease when the message transfer rate is less than or equal to the download rate.
8 . The method of claim 7 , further comprising:
determining that the stored quantity of messages in the buffer is zero; and
in response, providing the stream of messages to the application client at the message transfer rate.
9 . The method of claim 1 , wherein messages are provided to the application client in an order in which the messages are received.
10 . The method of claim 1 , wherein the download rate corresponds to a maximum rate at which the application client is able to download messages.
11 . A system, comprising:
one or more computer processors programmed to perform operations to:
receive a stream of messages at a client device,
wherein the stream of messages comprises a message transfer rate;
determine a download rate for an application client of the client device;
provide the stream of messages to the application client at the message transfer rate when the message transfer rate is less than or equal to the download rate; and
store the stream of messages in a buffer on the client device when the message transfer rate is greater than the download rate.
12 . The system of claim 11 , wherein to provide the stream of messages to the application client at the message transfer rate the one or more computer processors are further to:
provide the stream of messages to the application client without storing the messages in the buffer when the message transfer rate is less than or equal to the download rate.
13 . The system of claim 11 , wherein the operations are further to:
monitor download capabilities of the application client; and
based thereon, determine that the application client is unable to download the stream of messages at the message transfer rate.
14 . The system of claim 11 , wherein the operations are further to:
provide messages in the buffer to the application client when the message transfer rate is greater than the download rate.
15 . The system of claim 11 , wherein the operations are further to:
delete messages stored in the buffer when the buffer is full and the application client is unable to download additional messages.
16 . The system of claim 15 , wherein messages stored in the buffer for a longest period of time are deleted.
17 . The system of claim 11 , wherein the operations are further to:
allow a stored quantity of messages in the buffer to decrease when the message transfer rate is less than or equal to the download rate.
18 . The system of claim 17 , wherein the operations are further to:
determine that the stored quantity of messages in the buffer is zero; and
in response, provide the stream of messages to the application client at the message transfer rate.
19 . The system of claim 11 , wherein messages are provided to the application client in an order in which the messages are received.
20 . A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to:
receive a stream of messages at a client device,
wherein the stream of messages comprises a message transfer rate;
determine, by the one or more computer processors, a download rate for an application client of the client device;
provide, by the one or more computer processors, the stream of messages to the application client at the message transfer rate when the message transfer rate is less than or equal to the download rate; and
store, by the one or more computer processors, the stream of messages in a buffer on the client device when the message transfer rate is greater than the download rate.