2016-08-10 2 views
1

Ich kodiere eine einfache Chat-Anwendung und möchte eine gemeinsame Zeichenfläche zu meiner Anwendung hinzufügen, die Datenkanal verwendet, um Leinwandpunkte zwischen ihnen zu senden. Aber es ist eine optionale Spezifikation, also möchte ich nicht jedes Mal einen Datenkanal öffnen, wenn ich einen Chat öffne. Wenn ich den Datenkanal nach dem Herstellen der Peer-Verbindung (nach dem Angebot) öffne, kann ich keine Daten über den Datenkanal senden. Sonst kann ich senden (Ich habe diesen Punkt von hier: https://stackoverflow.com/a/35141500/5663292). Also warum muss ich Datenkanal öffnen, bevor Peer-Verbindung Angebot?Warum muss ich den Datenkanal vor dem Senden eines Peer-Verbindungsangebots öffnen?

Antwort

1

Das SDP Angebot/Antwort legt fest, wie genau Ihre Kollegen kommunizieren möchten. Das Angebot beinhaltet die eigentliche Verbindungsmethode (IP/Port/TURN-Relais) und welche Streams, Codecs und Kanäle Sie verwenden möchten. Die Antwort schmälert dies/bestätigt, was der andere Peer akzeptieren kann.

Wenn Sie etwas zur Kommunikation hinzufügen möchten, wie einen zusätzlichen Medienstream oder einen Datenkanal, müssen Sie den anderen Peer darüber informieren, sonst erwartet er nichts/kann nicht damit umgehen. immer

ist Der Fluss:

  1. alles, was Sie zu einem Remote-Peer auf dem lokalen RTCPeerConnection
  2. senden möchten bereiten eine Beschreibung lokale erzeugen
  3. es an den Remote-Peer die
  4. erwarten senden die Antwort des entfernten Peers
  5. die Antwort der Fernbedienung enthalten (setRemoteDescription)

Nur dann sind beide Peers auf der gleichen Seite und können wirklich miteinander reden. Wiederholen Sie diesen Vorgang bei Bedarf, d. H. Wenn Sie etwas an dem, was Sie senden, wesentlich ändern.

+0

danke für deine klare antwort –

Verwandte Themen