Realtime communications and network browsing client
First Claim
1. A method, comprising:
- executing a server application to generate instructions for a web browsing client application being executed by a client network node and comprising a realtime framework that manages processing of realtime data streams;
in accordance with the server application instructions, the web browsing client application establishes a peer-to-peer connection for streaming realtime data streams between the client network node and another client network node executing another web browsing client application using a connectionless transport protocol;
during the streaming, the realtime framework of the web browsing application performs operations comprising managing processing of the realtime data streams, and dynamically adjusting the processing of the realtime data streams based on network performance over the peer-to-peer connection, wherein the adjusting comprises, based on a determination that a bandwidth metric has deviated from a performance target, initiating a packet throttling operational mode comprising;
starting a current cycle with a reset bandwidth budget;
on condition that there is a time-critical packet currently queued to transmit and there is sufficient bandwidth budget available in the current cycle, transmitting the time-critical packet and reducing the bandwidth budget for the current cycle by an amount corresponding the transmitted time-critical packet; and
, on condition that no time-critical packet currently is queued to transmit, there is a non-time-critical packet queued to transmit, and there is sufficient bandwidth budget available in the current cycle, transmitting the non-time-critical packet and reducing the bandwidth budget for the current cycle by an amount corresponding the transmitted non-time-critical packet.
4 Assignments
0 Petitions
Accused Products
Abstract
A graphical user interface is displayed. The graphical user interface includes at least one communication control for managing communications with other network nodes and at least one browser control for navigating to different network resource addresses. Human perceptible realtime output is generated from realtime communication data relating to a realtime communication session with at least one other client network node. In the process of generating of at least some of the human perceptible realtime output, operation of the client network node is managed based on at least one performance target. In the graphical user interface, a graphical representation of a network resource identified in connection with the browser control is displayed.
-
Citations
21 Claims
-
1. A method, comprising:
-
executing a server application to generate instructions for a web browsing client application being executed by a client network node and comprising a realtime framework that manages processing of realtime data streams; in accordance with the server application instructions, the web browsing client application establishes a peer-to-peer connection for streaming realtime data streams between the client network node and another client network node executing another web browsing client application using a connectionless transport protocol; during the streaming, the realtime framework of the web browsing application performs operations comprising managing processing of the realtime data streams, and dynamically adjusting the processing of the realtime data streams based on network performance over the peer-to-peer connection, wherein the adjusting comprises, based on a determination that a bandwidth metric has deviated from a performance target, initiating a packet throttling operational mode comprising;
starting a current cycle with a reset bandwidth budget;
on condition that there is a time-critical packet currently queued to transmit and there is sufficient bandwidth budget available in the current cycle, transmitting the time-critical packet and reducing the bandwidth budget for the current cycle by an amount corresponding the transmitted time-critical packet; and
, on condition that no time-critical packet currently is queued to transmit, there is a non-time-critical packet queued to transmit, and there is sufficient bandwidth budget available in the current cycle, transmitting the non-time-critical packet and reducing the bandwidth budget for the current cycle by an amount corresponding the transmitted non-time-critical packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system comprising one or more processors and one or more storage devices storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
-
executing a server application to generate instructions for a web browsing client application being executed by a client network node and comprising a realtime framework that manages processing of realtime data streams; in accordance with the server application instructions, the web browsing client application establishes a peer-to-peer connection for streaming realtime data streams between the client network node and another client network node executing another web browsing client application using a connectionless transport protocol; during the streaming, the realtime framework of the web browsing application performs operations comprising managing processing of the realtime data streams, and dynamically adjusting the processing of the realtime data streams based on network performance over the peer-to-peer connection, wherein the adjusting comprises, based on a determination that a bandwidth metric has deviated from a performance target, initiating a packet throttling operational mode comprising;
starting a current cycle with a reset bandwidth budget;
on condition that there is a time-critical packet currently queued to transmit and there is sufficient bandwidth budget available in the current cycle, transmitting the time-critical packet and reducing the bandwidth budget for the current cycle by an amount corresponding the transmitted time-critical packet;
otherwise, on condition that no time-critical packet currently is queued to transmit, there is a non-time-critical packet queued to transmit, and there is sufficient bandwidth budget available in the current cycle, transmitting the non-time-critical packet and reducing the bandwidth budget for the current cycle by an amount corresponding the transmitted non-time-critical packet; and
on condition that the current cycle is not complete and that one or more packets were dropped since a dropped packet was last detected, decreasing the bandwidth budget for the current cycle to a current bandwidth budget and repeating the current cycle with the current bandwidth budget.
-
Specification