WebRTC

Web Real-Time Communication

Guilherme Siquinelli

@guiseek

//guiseek.dev
//github.com/guiseek

//twitter.com/guiseek

 

Comunidade

//www.devparana.org

//webrtc.community

- O quê?

- Com o quê?

- Porquê?

- Como?

- Comunidade

  • MediaStream

  • RTCPeerConnection

  • RTCDataChannel

MediaStream

RTCPeerConnection

RTCDataChannel

Signaling

  1. A quer se comunicação com B
     
  2. A encontra caminhos públicos para se conectar a B
     
  3. B encontra caminhos públicos para se conectar a A
     
  4. A e B coletam infos necessárias para se comunicarem
    (criptografia, codecs de vídeo / áudio, endereços IP e etc)
     
  5. A e B sinalizam informações coletadas para a sessão
    (WebSockets, HTTP fetch, Tweet, WhatsApp, QRCode e etc
     
  6. A se conecta a B com o menor caminho encontrado

Como as pessoas
podem me alcançar?

Como as pessoas podem me alcançar?

{
  type: 'offer',
  sdp: `
    v=0\r\n
    o=- 2959600943800719165 2 IN IP4 127.0.0.1\r\n
    s=-\r\n
    t=0 0\r\n
    a=group:BUNDLE 0\r\n
    a=msid-semantic: WMS\r\n
    m=application 60051 UDP/DTLS/SCTP webrtc-datachannel\r\n
    c=IN IP4 10.0.0.103\r\n
    a=candidate:3384705433 1 udp 2122260223 10.0.0.103 60051 typ host generation 0 network-id 1 network-cost 10\r\n
    a=candidate:2268953961 1 tcp 1518280447 10.0.0.103 9 typ host tcptype active generation 0 network-id 1 network-cost 10\r\n
    a=ice-ufrag:S0zV\r\n
    a=ice-pwd:QoOU+EYqQexy81j1CM6eLpnp\r\n
    a=ice-options:trickle\r\n
    a=fingerprint:sha-256 B6:1B:75:66:CC:1B:E1:41:3B:F6:FD:A2:E4:6F:4C:2C:65:90:46:FF:7B:0C:09:01:E4:C0:BF:69:09:25:9E:5A\r\n
    a=setup:actpass\r\n
    a=mid:0\r\n
    a=sctp-port:5000\r\n
    a=max-message-size:262144\r\n
  `,
}

WebRTC

By Gui Seek

WebRTC

Web Real-Time Communication

  • 54