This is an old revision of the document!
Table of Contents
Gyrocolor
Gyrocolor ist ein WebRTC Demoanwendung, die die verzögerte Latenz bei Peer-to-Peer Kommunikation zeigen soll. Der Code von Gyrocolor befindet sich im github Repository WebRTC-Data-Channel-Playground unter der Organisation nplab.
https://github.com/nplab/WebRTC-Data-Channel-Playground
Github wird auch als Hoster dafür verwendet. Über folgende URL ist gyrocolor erreichbar.
https://rawgit.com/nplab/WebRTC-Datachannel-Playground/master/gyrocolor/gyrocolor.html
STUN/TURN Server
Als STUN Server nutze Gryrocolor einen öffentlichen Server von Google. Als TURN Server wird der Server verwendet, der unsere DSL-Verbindung aufbaut.
var iceServer = {
iceServers : [
{
urls : "stun:stun.l.google.com:19302"
}, {
urls : "turn:dsl.nplab.de:3478",
username : "nplab",
credential : "nplab",
}]
};
Als TURN Server läuft ein Coturn auf gw-tuexen. Installiert werden kann der über pkg.
# pkg install turnserver
Gestartet werden kann der z. B. in einer tmux Session mit
# turnserver -c /usr/local/etc/turnserver.conf
Die turnserver.conf unterscheidet sich nur leicht von der vogegebenen turnserver.conf.default. Angepasst wurden die listening-ip, user und realm wie folgt.
listening-ip=217.92.3.215 user=nplab:nplab realm=nplab.de
Signaling
Als Signaling Server wird Firebase von Google verwendet. Über die Google Cloud kann eine Datenbank (Realtime Database) angelegt werden, die dafür genutzt wird.
Um die Realtime Database anzulegen mit einem Google Account anmelden und in der Firebase Console ein neues Projekt erstellen.
https://console.firebase.google.com
Nachdem ein Projekt erstellt/ausgewählt wurde, links im Menü der Firebase Console unter Entwickeln/Develop den Punkt Realtime Database anklicken. Dort eine offene Realtime Database (USA (us-central1)) erstellen, sodass jeder ohne Authentication darauf zugreifen kann. Aktuell sind die Zugriffsregeln die folgenden
{
"rules": {
".read": "now < 1729116000000", // 2024-10-17
".write": "now < 1729116000000", // 2024-10-17
}
}
Die Realtime Database ist über eine eigene URL erreichbar. In JavaScript wird die genutzt, um das Firebase Objekt zu erstellen.
var dbRef = new Firebase("https://msvoelker-webrtc-default-rtdb.firebaseio.com/");
