Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 2019 Rio Grande

25 views

Published on

A maneira como realizamos chamadas de áudio e vídeo e compartilhamento P2P nos últimos anos mudou muito e tudo isso graças ao WebRTC. WebRTC é um projeto aberto que permite comunicação em tempo real ponto a ponto entre navegadores, dispositivos móveis e IoT através de uma simples API JavaScript. Nesta palestra entenda melhor o funcionamento desta API e tudo que ela nos permite fazer.

Nelson Dutra Junior é Graduando em Engenharia de Computação pela UFPel, entusiasta de Software Livre, presidente na UFPel Rocket Team, foi voluntário na Comunidade Mozilla Brasil e atua como desenvolvedor Full Stack.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 2019 Rio Grande

  1. 1. A revolução da comunicação em tempo real
  2. 2. Quem sou? Nelson Dutra ● Engenharia de Computação UFPel ● Desenvolvedor Full Stack, SysAdmin ● Mozilla Brasil ● UFPel Rocket Team
  3. 3. O que é WebRTC? WebRTC é um projeto gratuito e de código aberto que permite comunicação em tempo real ponto a ponto entre navegadores, dispositivos móveis e IoT através de uma simples API JavaScript.
  4. 4. “WebRTC is a new front in the long war for an open and unencumbered web” Brendan Eich – Mozilla CTO and inventor of JavaScript
  5. 5. Por que WebRTC? ● Baixo custo (P2P) ● Alta qualidade em áudio e vídeo ● Transferência de dados ● Multiplataforma ● APIs nativas
  6. 6. WebRTC APIs
  7. 7. MediaStream Obtendo áudio, vídeo, telas ...
  8. 8. MediaStream ● Stream de áudio e/ou vídeo ● Pode conter múltiplas ‘tracks’
  9. 9. MediaStream getUserMedia()
  10. 10. MediaStream Constraints
  11. 11. MediaStream Screen Capture
  12. 12. MediaStream Web Audio ● Gráficos ● Fontes de áudio ● Destinos do áudio ● Efeitos ● Análise dos dados e visualização ● Processamento via JS ● Audio Spatialization
  13. 13. RTCPeerConection ● Processamento de sinais ● Manipulação dos Codecs ● Comunicação P2P ● Controle de Banda ● Segurança
  14. 14. RTCPeerConection
  15. 15. RTCDataChannel Comunicação bidirecional de dados entre peers ● API semelhante a WebSockets ● Latência extremamente baixa ● Confiável ● Transmissão segura ● Suporte a vários protocolos da camada de transporte
  16. 16. RTCDataChannel
  17. 17. Arquitetura
  18. 18. Protocolos e Servidores
  19. 19. Signaling Responsável por trocar os objetos ‘session description’ ● Formatos/codecs suportados ● O que desejo enviar ● Informações para setup da conexão P2P ● Pode ser feito por qualquer mecanismo de troca de mensagens ● Pode ser feito via qualquer protocolo
  20. 20. Signaling
  21. 21. RTCSessionDescription
  22. 22. Vida Real (NATs e Firewalls)
  23. 23. STUN Session Traversal Utilities for NAT ● Descobre o IP Público ● Encontra porta alocada pelo NAT para UDP ● Servidor simples e barato ● Dados continuam sendo transmitidos P2P
  24. 24. STUN
  25. 25. TURN Traversal Using Relays around NAT ● Realiza a comunicação caso P2P falhe ● Deve ser usado quando a NAT não é compatível com STUN ● Dados entre os usuários são trocados através do servidor ● Usa banda do servidor ● Garanta a conexão em quase todos os ambientes
  26. 26. TURN
  27. 27. ICE Interactive Connectivity Establishment ● Framework para conexão de peers ● Tenta encontrar o melhor caminho para conexão ● Monitora status da conexão
  28. 28. Segurança
  29. 29. Segurança ● Criptografia obrigatória para dados e media ● Consentimento explícito ● Sem plugins
  30. 30. Segurança
  31. 31. Perguntas?
  32. 32. Obrigado! Lorenzo Antunes - lfantunes@inf.ufpel.edu.br Nelson Dutra - ndjunior@inf.ufpel.edu.br

×