2016-07-07 14 views
0

Ich versuche, WebRTC-Medien über TCP mit einem Gateway dazwischen zu haben, aber ich habe einige interessante Probleme in der ICE-Verbindungsphase. Bevor es weitergeht, ist es wichtig zu wissen, dass ich das gleiche Setup für UDP habe und alles korrekt funktioniert.Chrome WebRTC über TCP

wir einen einzigen TCP-Kandidaten gehören (die Medien-Port wird modifiziert, um auch den gleichen Port enthalten) Im Gateway die Remote-Antwort SDP ändern: Ich bin das Senden als das Attribut

a=candidate:1 1 tcp 1 <gw_ip> <gw_port> typ host tcptype passive generation 0 

Auch Setup passiv :

a=setup:passive 

Sekunden nach der Remote-Beschreibung auf Chrome Anwendung, ich bin eine STUN BIND-Anforderung auf dem Gateway empfangen, die ich mit einer Bind Erfolg Antwort bin beantworten (ich habe beide Transaktions-ID und Message Integrity geprüft und sie scheinen gut).

Danach setzt chrome simple die ICE-Prüfung nicht fort (keine DTLS-Meldungen). Ich habe Chrom-Protokolle aktiviert, um zu sehen, wenn ein Fehler passiert war, und ich habe eine interessante Ausgabe gefunden:

„Ignorieren STUN-Antwortnachricht Bindung an gemeinsamen Sockel“

ich einen Blick genommen haben bei Chrom Quellcode und es scheint, dass dies gezeigt wird, weil Chrom eine gemeinsame Steckdose verwendet, aber ich kann nicht verstehen, es ist Grund.

Irgendwelche Ideen? Vielen Dank!

+0

Ist es möglich, die Übertragung eines Medien über TCP-Paket in WebRTC? – sureshkumar

+0

@sureshkumar Ja, es ist möglich, stellen Sie sicher, dass Sie einen Längenrahmenmechanismus implementiert haben, bevor Sie das Medium zur webrtc-Seite senden, siehe mehr @ https://tools.ietf.org/html/rfc5389 –

Antwort

0

Nach einer gründlichen Untersuchung habe ich herausgefunden, dass der TCP-Stream auf der Gateway-Seite nicht korrekt analysiert wurde.

Dieser Datenstrom verwendet einen Längenrahmenmechanismus, der nicht auf die eingehenden/ausgehenden Daten angewendet wurde, was zu mehreren Problemen in der Prozesspipeline führt.

finden Sie weitere Informationen zu den Framing-Mechanismus rfc5389: https://tools.ietf.org/html/rfc5389