2016-08-04 39 views
1

Ich bin auf der Suche nach einer Lösung wo ein Peer sendet ein Angebot und wenn aus irgendeinem Grund (kann aufgrund eines Netzwerkfehlers oder der andere Peer ist noch nicht gestartet) Es sollte in den stabilen Zustand zurückgesetzt werden (mit lokalem & Remote-Sdp auf Null gesetzt), damit es nachfolgende Angebotsnachrichten von anderen Peers verarbeiten kann.kann keine lokale Beschreibung während der Behandlung von Race Condition wegen gleichzeitigem Angebot Austausch

Kann jemand erklären, wie man das macht?

+0

Ich folgte unten Ansatz, um obige Situation zu behandeln. –

+0

Ich behandelte es, indem ich das Angebot kontrollierte und den Austausch unter Verwendung eines binären Semaphor-Mechanismus auf dem Signalisierungsserver antworte. Aber ich stehe jetzt vor einem anderen Problem. Ich kann keinen Videostream an die Gegenstelle senden. Videoübertragung findet nur in einer Richtung statt. Ich verwende ein einzelnes Peer-Verbindungsobjekt. –

Antwort

1

Ich habe gerade das gleiche Problem konfrontiert, und ich fand, dass dieses Problem einen Namen hat: es heißt "Blendung".

Diese Person beantwortet eine ähnliche Frage: https://stackoverflow.com/a/29552565/1690115

Aber es gibt bessere Lösungen, basierend auf zufälligen Token. Die Idee ist, dass Peers immer eine zufällige Zahl in ihr Angebot aufnehmen. Wenn Peer A und Peer B die Kollision bemerken (weil sie jeweils ein Angebot erhalten, während sie ein ausstehendes Angebot haben), gewinnt das mit dem größten Token.

Ich bin kein Experte für WebRCT und Blendung, aber ich hoffe, dass dies ein wenig geholfen hat. Sie können viele Lösungen auf Google finden, indem Sie "webrtc glare" suchen.