La mia conoscenza del server STUN per webrtc è che quando i client si trovano dietro il NAT (nella maggior parte dei casi, se non tutti), il server STUN aiuterà i client webrtc a identificare i loro indirizzi e porte. E ho anche letto alcuni articoli che dicono che un server di segnalazione è necessario per i client webrtc. Il server di segnalazione potrebbe essere un server web, socket.io, o anche inviare via email un url. La mia prima domanda sarebbe: il server STUN è il server di segnalazione?Il server STUN è assolutamente necessario per webrtc quando ho un server di segnalazione basato su socket.io?
Attualmente ho creato un servizio socket.io molto semplice che trasmette le descrizioni delle sessioni del client a tutti gli altri client. Quindi credo che il server basato su socket.io dovrebbe avere una conoscenza sufficiente degli indirizzi dei client e delle informazioni sulle porte. Se questo è il caso, perché ci preoccupiamo di avere un altro server STUN?
Grazie a @bwtrent per la risposta molto chiara e informativa. Quindi quando viene il server STUN a giocare? Solo all'inizio della connessione peer o tutto il tempo durante la connessione? Se la risposta è solo all'inizio della connessione? Perché non permettere al server di segnalazione di fare ciò che il server STUN dovrebbe fare? Perché penso che il server di segnalazione dovrebbe essere sufficientemente informato sulle informazioni NAT dei peer per poter parlare con ciascun peer. Ho sottovalutato la complessità del server STUN? –
@ElgsQianChen Deve essere un server STUN. Il server di segnalazione e il server STUN potrebbero trovarsi nella stessa posizione fisica/stessa casella fisica/FQDN ma la negoziazione NAT deve essere eseguita con STUN (o TURN quando è in gioco un NAT simmetrico). Questo è in accordo con la specifica/movimento WebRTC/Qualunque cosa venga chiamata ora. –
Come menzionato @BenjaminTrent, STUN ei server di segnalazione possono essere entrambi sulla stessa macchina fisica IFF è pubblica per entrambi i peer. La parte server di segnalazione entra in gioco appena prima che i due peer si impegnino in una connessione per scambiare informazioni. D'altra parte, il ruolo di STUN (o TURN) viene prima, ed è quello di informare/aggiornare ogni peer come può essere raggiunto. Queste informazioni vengono quindi utilizzate per stabilire la connessione nella fase di segnalazione. Questo è il motivo per cui lo STUN dovrebbe essere pubblico per entrambi i pari. – karimyafi