O WebRTC é um projeto de código aberto para habilitar comunicações em tempo real de áudio, vídeo e dados na web e em apps nativos.
WebRTC possui varias API’S em JavaScript — clique nos links para ver exemplos the links to see demos.
getUserMedia()
: captura de áudio e vídeo.MediaRecorder
: gravação de áudio e vídeo.RTCPeerConnection
: transmissão de áudio e vídeo entre usuários.RTCDataChannel
: transmissão de dados entre usuários.No Firefox, Opera e no Chrome em desktop e Android. WebRTC também é acessível para apps nativos no iOS e Android.
O WebRTC usa RTCPeerConnection para o fluxo de comunicação de dados entre navegadores, mas também precisa de um mecanismo para coordenar a comunicação e enviar mensagens de controle, um processo conhecido como sinalização. Os métodos e protocolos de sinalização não são especificados pelo WebRTC. Nesse codelab você usará o Socket.io para mensagens, mas há muitas alternativas.
WebRTC está projetado para trabalhar ponto-a-ponto (‘peer-to-peer’), para que os usuários possam se conectar pela rota mais direta possível. Contudo, o WebRTC está construído para lidar com redes do mundo real: aplicações do cliente precisam atravessar NAT gateways e firewalls, e redes ponto a ponto precisam de fallbacks em caso de falha na conexão direta. Como parte desse processo, as APIs WebRTC usam servidores STUN para obter o endereço IP do seu computador, e servidores TURN para funcionar como servidores de retransmissão no caso de falha na comunicação ponto-a-ponto. (WebRTC no mundo real explicado mais detalhadamente).
A criptografia é obrigatória para todos os componente WebRTC, e suas APIs JavaScript só podem ser usadas de origens seguras (HTTPS ou localhost). Os mecanismos de sinalização não são definidos pelos padrões do WebRTC,
Encryption is mandatory for all WebRTC components, and its JavaScript APIs can only be used from secure origins (HTTPS or localhost). Signaling mechanisms aren’t defined by WebRTC standards, so it’s up to you make sure to use secure protocols.
Buscando por mais, confira os recursos em webrtc.org/start.
Conteúdo traduzido do site https://codelabs.developers.google.com/codelabs/webrtc-web/#0