2013-08-11 8 views

Odpowiedz

8

Podczas nawiązywania połączenia z WebRTC ustawiasz STUN i/lub TURN, aby użyć przeglądarki internetowej. Jeśli użytkownik poinformuje przeglądarkę za pomocą obu opcji, przeglądarka zacznie najpierw próbować użyć STUN. Następnie, w przypadku niepowodzenia, spróbuje użyć TURN.

"Serwer przekazujący" jest serwerem TURN.

Jak wiadomo, nie ma standardowego sposobu, aby dowiedzieć się, którą opcję przeglądarka internetowa zdecydowała się użyć: STUN lub TURN.

Z drugiej strony, jeśli jesteś właścicielem serwera TURN, możesz sprawdzić, czy klient WWW go używa, a następnie wysłać te informacje do klienta.

AKTUALIZACJA

To jest mój kod: https://github.com/fycth/webrtcexample/blob/master/www/js/rtc_lib.js

Można zobaczyć nie tylko używam serwera STUN, więc jest p2p albo nic, a nie przekaźnika.

+0

Ah, więc muszę po prostu wyjść serwer TURN i serwer przekazywania nie będą używane i otrzymam tylko prawdziwe p2p lub nic? –

+1

Tak, możesz przekazać do RTCPeerConnection tylko serwer STUN (bez TURN). W takim przypadku spróbuje użyć p2p bez przekaźników. – fycth

+1

Ustawienie tylko serwera TURN nie musi oznaczać, że zostanie użyty TURN, a nośnik zostanie przekazany, ponieważ większość implementacji serwerów TURN dostarczy również aplikacje do ogłuszania aplikacji. Aby wymusić na aplikacji użycie przekaźnika, musisz przefiltrować listę kandydatów z SDP i pozwolić tylko na te przekaźniki. – nakib

1

W chrome. przejdź do chrome: // webrtc-internals, przejdź do następnej pary connection-googCandidate (z czarnymi literami) sprawdź czy googLocalcandidatetype to relay, to webrtc używa połączenia relay. Jeśli googLocalcandidatype jest lokalny, to używa połączenia peer-to-peer W firefox, przejdź do: webrtc, jeśli powodzenie połączenia zawiera dowolnego kandydata jako przekazanego-udp, wtedy webrtc używa połączenia przekaźnikowego