2016-05-19 16 views
3

Ich versuche eine Lösung für einen Signalisierungsserver für ein Android WebRTC-basiertes Projekt zu finden. Beide Clients werden Android sein und beide nahe beieinander liegen, d. H. Innerhalb von 100 Metern oder weniger. Ich möchte, dass die Lösung ohne die Verwendung eines öffentlichen Signalisierungsservers funktioniert. Ich möchte lieber nur einen der Clients als Server fungieren lassen.WebRTC lokaler Signalserver

Also, meine Frage ist: 1. Wie kann ich es erreichen, so dass man der Server ist? - Kann ich einen Hotspot einstellen oder direkt WLAN nutzen? 2. Wenn ich # 1 erreichen kann, was ist dann eine gute Lösung für einen Signalisierungsserver, der auf Android läuft? Kann ich einen der nodejs Server auf Android laufen lassen?

+0

Haben Sie ohne Internet telefonieren wollen? – Haven

+0

@Haven - ja. Ich muss nicht über das Netz gehen. –

Antwort

3

Ein Signalisierungsserver ist einfach eine Möglichkeit, Nachrichten zwischen zwei Parteien auszutauschen. In dem Fall WebRTC sind diese Nachrichten die Angebots-/Antwort- und ICE-Kandidaten.

Sie können jede Art von Server verwenden, den Sie dies tun möchten, Sie können es sogar manuell tun :).

Sie können einen der Clients auch als Server verwenden, aber dann müssen Sie die IP irgendwie mit dem anderen kommunizieren. Vielleicht nutzen Sie Wi-Fi direkt und programmatisch.

+0

Danke Adrian. Also, sagst du, brauche ich nicht einmal einen Server in diesem Szenario? I.e. - könnte ich einfach webrtc mit geraden web sockets über einen lokalen hotspot verwenden? Auf diese Weise den Prozess in meiner App zu halten? –

+0

Da ich die IP-Adresse der Clients kenne, brauche ich die NATs nicht zu durchlaufen. Ich frage mich, ob ich auf TURN-, STUN- und ICE-Kandidaten verzichten kann. –

+2

Sie benötigen einen Server, weil Sie die Nachrichten irgendwie automatisch übertragen müssen. Aber der Server und der Client können sich in derselben App befinden. –

2

Mit WebRTC ist Signalisierungsserver nur der Weg, um Ihnen zu helfen, Ihre Nachricht zu übertragen, Ihre Informationen auszutauschen (SDP-Paket (createOffer/antwort), Kandidaten auszutauschen usw.).

Beispiel: Sie können GCM (Free) als Signalisierungsserver verwenden oder Nodejs mit socket.io, websocket, XMPP usw. verwenden. Sie brauchen nur Ihre Nachricht zwischen zwei Peers zu übertragen.

Sie zu diesem Tutorial beziehen: http://www.html5rocks.com/en/tutorials/webrtc/basics/

+0

Danke @Khoatd, ich verstehe den Zweck der Signalisierung. Meine Frage ist mehr in Bezug darauf, was ein guter Mechanismus ist, um die Signalisierung in meinem Szenario durchzuführen - 2 Android-Clients ohne Internetverbindung, vorausgesetzt, dass man als Server agiert. –