Here is a page with some graphs showing how the signaling process works. Im Grunde genommen stellen Sie zuerst einige Client-Seiten ein:
- PeerConnectionFactory; um PeerConnections zu erzeugen,
- PeerConnection; eine für jede Verbindung zu einem anderen Peer, den Sie möchten (normalerweise 1),
- MediaStream; um Audio und Video von Ihrem Clientgerät zu verbinden.
Dann erzeugen Sie eine SDP
offer
peerConnection.createOffer();
auf der Anruferseite und an den Angerufenen senden. Der Angerufene setzt dieses offer
peerConnection.setRemoteDescription(insert-the-offer-here);
und erzeugt ein SDP
answer
peerConnection.createAnswer();
und sendet sie zurück an den Anrufer. Der Anrufer erhält diese answer
und stellt sie ein.
peerConnection.setRemoteDescription(insert-the-answer-here);
Sowohl der Anrufer und Angerufener einen Aufruf an
onAddStream() {...} //needs to be implemented in your code
Der Angerufene erhalten, wenn die offer
des Anrufers festgelegt ist und der Anrufer, wenn der Angerufenen answer
gesetzt. Dieser Rückruf signalisiert den Beginn der Verbindung.
Sie können auch ICE
(STUN
/TURN
) verwenden, um firewall
und NAT
Probleme zu vermeiden, aber das ist optional. Im Produktionscode möchten Sie es wahrscheinlich trotzdem implementieren.
Hinweis: WebRTC Dokumentation ist knapp und können sich ändern, nehmen Sie alles, was Sie über WebRTC lesen (zumindest etwas ab sofort geschrieben) mit einem Körnchen Salz ...
Beziehen Sie sich auf Signalisierung? – nick
Ja. Ich verstehe, dass es meine Aufgabe ist, einen Kanal zu erstellen, der anfänglich Angebote/Antworten an Peers liefert, aber ich kann keine detaillierten Anweisungen finden, wie diese Nachrichten aufgebaut werden sollten. – mspanc
Starten von ICE: https://tools.ietf.org/html/rfc5245 - es deckt auch grundlegende Momente auf SDP ab. Grundsätzlich müssen Sie von ICE und STUN/TURN starten und dann mit SDP fortfahren. Zu diesem Zeitpunkt wäre Ihre App in der Lage, mit SDP-Paketen auszutauschen und die Signalisierungsphase zu durchlaufen. Danach müssen Sie die DTLS-Protokollunterstützung für Ihren Client implementieren. Und dann SRTP/SCTP. – fycth