Search

CN-118648276-B - Peer-to-peer signal buffering system

CN118648276BCN 118648276 BCN118648276 BCN 118648276BCN-118648276-B

Abstract

A process includes receiving a peer-to-peer connection initiation signal to establish a peer-to-peer connection with a second client computing device. The process also includes determining that the peer-to-peer connection condition is not satisfied such that the first client computing device is unavailable to establish a peer-to-peer connection with the second client computing device, and storing the peer-to-peer connection initiation signal in a signal cache associated with the first client computing device.

Inventors

  • Chris Pusiaki
  • Daniel Libeskind

Assignees

  • 托匹亚交互有限公司

Dates

Publication Date
20260505
Application Date
20221208
Priority Date
20211210

Claims (16)

  1. 1. A non-transitory machine-readable medium storing instructions that when executed by one or more processors perform operations comprising: receiving, by the first client computing device, a peer-to-peer connection initiation signal to establish a peer-to-peer connection with the second client computing device; determining, by the first client computing device, whether a proximity condition is satisfied; When the proximity condition is not satisfied, making the first client computing device unavailable to establish the peer-to-peer connection with the second client computing device and storing, by the first client computing device, the peer-to-peer connection initiation signal in a signal cache associated with the first client computing device, and The peer-to-peer connection initiation signal is sent by the first client computing device to establish the peer-to-peer connection with the second client computing device when the proximity condition is satisfied.
  2. 2. The medium of claim 1, wherein the operations further comprise: Determining, by the first client computing device, that the proximity condition exists for the first client computing device, making the first client computing device available to establish the peer-to-peer connection with the second client computing device; Determining, by the first client computing device, that the peer-to-peer connection initiation signal is in the signal cache; processing, by the first client computing device, the peer-to-peer connection initiation signal from the signal cache, and Transmitting, by the first client computing device, a response to the peer-to-peer connection initiation signal to the second client computing device, wherein the response causes the first client computing device and the second client computing device to establish the peer-to-peer connection.
  3. 3. The medium of claim 1, wherein the proximity condition comprises determining whether a first participant associated with the first client computing device and at a first location in a coordinate grid environment provided by an application is within a distance of a second participant associated with the second client computing device and at a second location in the coordinate grid environment.
  4. 4. The medium of claim 3, wherein the operations further comprise: A distance between the first participant and the second participant is determined by the first client computing device using a coordinate grid state generated by the first client computing device and generated using a participant-location payload provided by a state server computing device, wherein the participant-location payload includes participant-location information associated with each participant in the coordinate grid environment.
  5. 5. The medium of claim 4, wherein the participant location information for each participant comprises a current location of the participant in the grid environment, a location indicated in a user input for the participant, and a time of user input for the participant.
  6. 6. The medium of claim 1, wherein the operations further comprise: receiving, by the first client computing device, user input to move a first participant associated with the first client computing device and at a first location in a coordinate grid environment provided by an application to a second location, and Transmitting, by the first client computing device, participant location information for the first participant to a state server computing device, wherein the participant location information includes the first location, the second location, and the time of the user input.
  7. 7. The medium of claim 1, wherein the operations further comprise: Transmitting, by the first client computing device, a second peer-to-peer connection initiation signal to establish a second peer-to-peer connection with a third client computing device, and In response to receiving the second peer-to-peer connection response signal, establishing, by the first client computing device, the second peer-to-peer connection with the third client computing device.
  8. 8. The medium of claim 7, wherein the operations further comprise: And in response, performing the sending of the second peer-to-peer connection initiation signal to establish the second peer-to-peer connection.
  9. 9. The medium of claim 8, wherein the determining whether the second peer-to-peer connection is satisfied comprises determining whether a proximity condition is satisfied, wherein the proximity condition comprises determining whether a first participant associated with the first client computing device and at a first location in a coordinate grid environment provided by an application is within a distance of a third participant associated with the third client computing device and at a third location in the coordinate grid environment.
  10. 10. The medium of claim 1, wherein the peer-to-peer connection initiation signal is a Session Description Protocol (SDP) proposal in accordance with an Interactive Connection Establishment (ICE) protocol provided by a real-time communication (RTC) Application Programming Interface (API).
  11. 11. A non-transitory machine-readable medium storing instructions that when executed by one or more processors perform operations comprising: Determining, by a first client computing device, whether a proximity condition is satisfied, wherein the proximity condition includes determining whether a first participant associated with the first client computing device and at a first location in a coordinate grid environment provided by an application is within a distance of a second participant associated with a second client computing device and at a second location in the coordinate grid environment; When the proximity condition is not satisfied, making the first client computing device unavailable to establish a first peer-to-peer connection with the second client computing device, and storing, by the first client computing device, a first peer-to-peer connection initiation signal in a signal cache associated with the first client computing device; transmitting, by the first client computing device and in response to the proximity condition being satisfied, the first peer-to-peer connection initiation signal to establish the first peer-to-peer connection with the second client computing device when the proximity condition is satisfied, and In response to receiving a first response to the first peer-to-peer connection initiation signal, establishing, by the first client computing device, the first peer-to-peer connection with the second client computing device, Wherein the operations further comprise: receiving, by the first client computing device, a second peer-to-peer connection initiation signal to establish a second peer-to-peer connection with a third client computing device; Determining, by the first client computing device, that a second proximity condition is not satisfied such that the first client computing device is unavailable to establish a peer-to-peer connection with the third client computing device, and The second peer-to-peer connection initiation signal is stored by the first client computing device in a signal cache associated with the first client computing device.
  12. 12. The medium of claim 11, wherein the operations further comprise: Determining, by the first client computing device, that the second proximity condition exists for the first client computing device such that the first client computing device is available to establish a second peer-to-peer connection with the third client computing device; determining, by the first client computing device, that the second peer to peer connection initiation signal is in the signal cache; Processing, by the first client computing device, the second peer to peer connection initiation signal, and The second peer-to-peer connection initiation signal is sent by the first client computing device to the third client computing device, wherein the response causes the first client computing device and the third client computing device to establish the second peer-to-peer connection.
  13. 13. The medium of claim 11, wherein determining whether the second peer-to-peer connection is satisfied comprises determining whether the proximity condition is satisfied, wherein the proximity condition comprises determining whether the first participant associated with the first client computing device and at the first location in the coordinate grid environment provided by the application is within a distance of a third participant associated with the third client computing device and at a third location in the coordinate grid environment.
  14. 14. The medium of claim 13, wherein the operations further comprise: A distance between the first participant and the third participant is determined by the first client computing device using a coordinate grid state generated by the first client computing device and generated using a participant-location payload provided by a state server computing device, wherein the participant-location payload includes participant-location information associated with each participant in the coordinate grid environment.
  15. 15. The medium of claim 14, wherein the participant location information for each participant comprises a current location of the participant in the grid environment, a location indicated by user input for the participant, and a time of user input for the participant.
  16. 16. A method, comprising: receiving, by the first client computing device, a peer-to-peer connection initiation signal to establish a peer-to-peer connection with the second client computing device; determining, by the first client computing device, whether a proximity condition is satisfied; When the proximity condition is not satisfied, making the first client computing device unavailable to establish the peer-to-peer connection with the second client computing device and storing, by the first client computing device, the peer-to-peer connection initiation signal in a signal cache associated with the first client computing device, and The peer-to-peer connection initiation signal is sent by the first client computing device to establish the peer-to-peer connection with the second client computing device when the proximity condition is satisfied.

Description

Peer-to-peer signal buffering system Cross Reference to Related Applications The present application claims the benefits of U.S. provisional patent application 63/288,435 entitled "mesh network signal caching system" filed on 12 th month 10 of 2021, U.S. provisional patent application 63/391,652 entitled "hybrid peer-to-peer mesh and streaming system" filed on 7 th month 22 of 2022, and U.S. provisional patent application 63/398,485 entitled "authoritative status distribution" filed on 16 th 8 of 2022. The entire contents of each of the aforementioned patent applications are incorporated herein by reference. Technical Field The present disclosure relates generally to peer-to-peer mesh networks and, more particularly, to a peer-to-peer signal caching system that caches signals for neighboring peer-to-peer connections between participants. Background Many software applications can stream media such as video, audio, or other data between participants of the application. Video and audio streaming may enhance the user experience of an application by allowing more personal interaction between participants of an application instance. For example, in some gaming applications, video and audio may be streamed between participants in a game instance. However, as the number of streams between a particular participant and other participants increases, the quality of the audio and video streams decreases and may result in streaming session failure. Thus, systems have been developed to limit the number of streams per participant to maintain acceptable stream quality. One such system includes a peer-to-peer mesh topology in which a subset of participants are interconnected for streaming video and/or audio. However, peer-to-peer mesh topologies present the problems discussed below. Disclosure of Invention The following is a non-exhaustive list of some aspects of the present technology. These and other aspects are described in the disclosure below. Some aspects include a process that includes receiving a peer-to-peer connection initiation signal to establish a peer-to-peer connection with a second client computing device, determining that a peer-to-peer connection condition is not satisfied such that a first client computing device is unavailable to establish a peer-to-peer connection with the second client computing device, and storing the peer-to-peer connection initiation signal in a signal cache associated with the first client computing device. Some aspects include a process comprising determining, by a first client computing device, that a proximity condition is satisfied, wherein the proximity condition comprises determining whether a first participant associated with the first client computing device and at a first location in a grid environment provided by an application is within a distance of a second participant associated with a second client computing device and at a second location in the grid environment, transmitting, by the first client computing device and in response to the proximity condition being satisfied, a first peer-to-peer connection initiation signal to establish a first peer-to-peer connection with the second client computing device, and in response to receiving a first response to the first peer-to-peer connection initiation signal, establishing, by the first client computing device, a first peer-to-peer connection with the second client computing device. Some aspects include a tangible, non-transitory, machine-readable medium storing instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising the above-mentioned processes. Some aspects include a system comprising one or more processors and a memory storing instructions that, when executed by the processors, cause the processors to implement the operations of the above-mentioned processes. Drawings The above-mentioned and other aspects of the present technology will be better understood when the present application is read in light of the following drawings in which like numerals represent like or identical elements: FIG. 1 illustrates a computing environment in which the present technology may be implemented in accordance with some embodiments of the present disclosure; FIG. 2 is a block diagram illustrating an example of a client computing device of the computing environment of FIG. 1, in accordance with some embodiments of the present disclosure; FIG. 3 is a block diagram illustrating an example of a server computing device of the computing environment of FIG. 1, according to some embodiments of the present disclosure; FIG. 4 illustrates a flowchart of a process for participant state distribution performed by the computing environment of FIG. 1 in accordance with some embodiments of the disclosure; FIG. 5 illustrates a flowchart of a process for peer-to-peer signal caching performed by the computing environment of FIG. 1, in accordance with some embodiments of the pres