Python ist eine vielseitige und zugängliche Programmiersprache, die für ihre klare Syntax und Lesbarkeit bekannt ist
Dies macht es zu einer guten Wahl für die Erstellung von WebRTC-Anwendungen
Wir können einen WebRTC-Server in Python erstellen, indem wir Bibliotheken wie aiortc verwenden
Reine Python-Implementierung:
Aufgebaut auf asyncio :
Medien- und Datenkanäle:
Einfache Integration:
Ausführliche Dokumentation und Beispiele:
Python 3.x installiert:
1 |
|
Grundkenntnisse der asynchronen Programmierung:
Verwendung von Pip zur Installation von Aiortc und anderen Abhängigkeiten.
aiortc ist eine reine Python-Implementierung von webrtc und ORTC. Es verwendet asynchrone Funktionen der Python-Sprache, um die Echtzeitkommunikation abzuwickeln
Installieren Sie die Bibliotheken mit pip wie folgt
1 |
|
aiorrtc stellt die Kernfunktionalität von WebRTC bereit
aiohttp ist ein asynchrones HTTP-Client/Server-Framework, wir werden dieses Framework für die Signalisierung verwenden
Signalisierung mit WebSockets einrichten
WebRTC benötigt einen Signalisierungsmechanismus, um eine Verbindung herzustellen.
WebRTC tut dies durch den Austausch von SDP- oder Sitzungsbeschreibungen und ICE-Kandidaten zwischen Kollegen
Hierfür können Sie alles verwenden. In diesem Artikel werden wir WebSockets für die bidirektionale Echtzeitkommunikation zwischen Client und Server verwenden
Signalisierungs-Setup (Servercode)
1 |
|
Hier erstellen wir ein RTCPeerConnection-Objekt, um die Verbindung und die Medienströme zu verwalten
Servercodebeispiel (Peer-Verbindung)
1 |
|
Um die NAT-Durchquerung abzuwickeln und die Konnektivität sicherzustellen, benötigen wir TURN-Server.
In diesem Artikel beschäftigen wir uns mit Metered TURN-Servern. Metered ist ein globaler Anbieter von TURN-Servern
Sie können sich für einen kostenlosen Plan auf Metered TURN-Servern anmelden, der ein monatliches TURN-Serverkontingent von 50 GB bietet. Es sind auch kostenpflichtige Pläne verfügbar
Schritte:
Melden Sie sich bei Metered.ca/stun-turn an und erhalten Sie Ihre TURN-Zugangsdaten
Klicken Sie im Dashboard auf die Schaltfläche „Klicken Sie hier, um Ihre ersten Anmeldeinformationen zu generieren“, um neue TURN-Server-Anmeldeinformationen zu erstellen
Klicken Sie dann auf die Schaltfläche „Anweisungen“, um Ihr ICE-Server-Array zu erhalten.
Sie können den API-Schlüssel auch verwenden, um TURN-Server zu aktivieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
So können wir hier alles integrieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
STUN-Server: Diese helfen den Client-Geräten, die sich hinter einem NAT befinden, ihre eigene IP-Adresse und Portnummer zu kennen. Weitere Informationen zu STUN-Servern finden Sie unter Stun Server: Was sind Session Traversal Utilities für NAT?
TURN-Server: TURN-Server leiten den Datenverkehr von Peer zu Per weiter, wenn eine direkte Kommunikation aufgrund von NAT- oder Firewall-Regeln nicht möglich ist. Weitere Informationen zu TURN-Servern finden Sie unter: Was ist ein TURN-Server?
Verwendung von Asyncio für die Parallelitätsverwaltung
Best Practices für die Medienstream-Verwaltung
API: TURN-Serververwaltung mit leistungsstarker API. Sie können beispielsweise Anmeldeinformationen über die API hinzufügen/entfernen, Pro Benutzer/Anmeldeinformationen und Benutzermetriken über die API abrufen, Anmeldeinformationen über die API aktivieren/deaktivieren und Nutzungsdaten nach Datum über die API abrufen.
Globales Geo-Location-Targeting: Leitet den Datenverkehr automatisch an die nächstgelegenen Server weiter, für geringstmögliche Latenz und höchste Leistungsqualität. Weniger als 50 ms Latenz überall auf der Welt
Server in allen Regionen der Welt: Toronto, Miami, San Francisco, Amsterdam, London, Frankfurt, Bangalore, Singapur, Sydney, Seoul, Dallas, New York
Geringe Latenz: weniger als 50 ms Latenz, überall auf der Welt.
Kostengünstig: Pay-as-you-go-Preisgestaltung mit verfügbaren Bandbreiten- und Mengenrabatten.
Einfache Verwaltung: Erhalten Sie Nutzungsprotokolle, E-Mails, wenn Konten Grenzwerte erreichen, Abrechnungsunterlagen sowie E-Mail- und Telefonsupport.
Standardkonform: Entspricht RFCs 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 6544, 5928 über UDP, TCP, TLS und DTLS.
Multi-Tenant-Funktion: Erstellen Sie mehrere Anmeldeinformationen und trennen Sie die Nutzung nach Kunden oder verschiedenen Apps. Erhalten Sie Nutzungsprotokolle, Abrechnungsaufzeichnungen und Schwellenwertwarnungen.
Unternehmenszuverlässigkeit: 99,999 % Betriebszeit mit SLA.
Enterprise Scale: Ohne Begrenzung des gleichzeitigen Datenverkehrs oder des Gesamtdatenverkehrs. Gemessene TURN-Server bieten Unternehmensskalierbarkeit
5 GB/Monat kostenlos: Mit dem kostenlosen Plan erhalten Sie jeden Monat 5 GB kostenlose TURN-Servernutzung
Läuft auf Port 80 und 443
Unterstützt TURNS SSL, um Verbindungen durch Deep-Packet-Inspection-Firewalls zu ermöglichen.
Unterstützt sowohl TCP als auch UDP
Kostenloser, unbegrenzter STUN
Das obige ist der detaillierte Inhalt vonWebRTC-Python-Server: STUN/TURN-Server für Ihre Python-App. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!