WebRTC - Demonstração do RTCDataChannel, mudanças na API... e o Chrome se comunica com o Firefox

Mais boas notícias do nosso velho amigo WebRTC.

Para ser mais preciso: três boas notícias e algumas pequenas mudanças na API.

RTCDataChannel para Chrome

O RTCDataChannel foi implementado no Chrome, e há uma ótima demonstração em simpl.info/dc.

Esta demonstração mostra a comunicação ponto a ponto de dados arbitrários, em menos de cem linhas de código. Para isso, é necessário ter o Chrome 25 ou superior, que agora significa Beta ou Canário.

O RTCDataChannel aproveita ao máximo os recursos integrados ao RTCPeerConnection, não menos importante, o uso se o framework ICE para passar por firewalls e NATs. Ele tem muitos aplicativos em potencial em que a baixa latência é fundamental: para jogos, aplicativos de área de trabalho remota, chat de texto em tempo real e transferência de arquivos.

Para saber mais sobre o RTCDataChannel, consulte Primeiros passos com o WebRTC.

Mudanças na API

Menos empolgante, mas ainda importante: a partir do Chrome 26, algumas propriedades da API RTCPeerConnection e MediaStream se tornaram métodos getter:

  1. O MediaStream agora tem o método getAudioTracks() em vez da propriedade audioTracks e getVideoTracks() em vez de videoTracks.
  2. O RTCPeerConnection agora tem getLocalStreams() em vez de localStreams e getRemoteStreams() em vez de remoteStreams.

Para ter uma ideia do MediaStream em ação, veja a demonstração do getUserMedia simpl.info/gum. A variável stream está no escopo global: examine-a no console. Do mesmo modo para RTCPeerConnection em simpl.info/pc: os objetos RTCPeerConnection pc1 e pc2 estão no escopo global.

Google Chrome <=> Firefox

E caso você tenha perdido ele, o Chrome agora pode "falar" para o Firefox.

Você pode testar isso agora em webrtc.org/start, que tem instruções completas, links para o código-fonte e informações sobre as diferenças da API.

Um exemplo para aqueles do Mozilla e do Google que fizeram tudo dar certo.

Divirta-se com os códigos! Informe se você tiver bugs, seja comentando nesta postagem ou em bugs.chromium.org. Não se esqueça de que você pode acessar informações atualizadas de implementação no excelente chromestatus.com.