Patent ID: 7827139

Claim:
A bandwidth-adaptive method for synchronizing display data between a source node and a plurality of consumer nodes, the method comprising: (a) identifying, by a source node that comprises a processor, a change in local display data; (b) creating, by the source node, at least one data packet representing the change in local display data; (c) receiving, by a communications service from the source node, a metadata packet identifying each of the data packets that represent a current state of local display data following the change in local display data, the metadata packet being indicative of the data packets required by a consumer node to synchronize the consumer node's display data with the source node's local display data, and the metadata packet being a separate packet from the identified data packets; (d) receiving, by the communications service from the source node, at least one of the identified data packets; (e) selecting, by the communications service, first and second sets of the identified data packets responsive to the received metadata packet, the first and second sets being different from one another, the first set being all the data packets identified by the metadata packet less the data packets already transmitted to a first consumer node, and the second set being all the data packets identified by the metadata packet less the data packets already transmitted to a second consumer node having a different bandwidth connection with the communication service than the first consumer node has with the communications service; (f) transmitting, by the communications service to the first consumer node, the metadata packet followed by the first set of identified data packets; (g) transmitting, by the communications service to the second consumer node, the metadata packet followed by the second set of identified data packets, whereby the first and second consumer nodes are transmitted a common metadata packet, but different data packets along therewith; and (h) repeating steps (a) through (d) until a consumer node is able to receive further data packets from the communications service.