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 mudanças menores 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, você precisa do Chrome 25 ou mais recente, o que significa Beta ou Canary.

O RTCDataChannel aproveita ao máximo os recursos integrados à RTCPeerConnection, incluindo o uso do framework ICE para contornar firewalls e NATs, e tem muitos aplicativos em potencial em que a baixa latência é fundamental: jogos, aplicativos de área de trabalho remota, chat de texto em tempo real e transferência de arquivos.

Para mais informações 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. A MediaStream agora tem o método getAudioTracks() em vez da propriedade audioTracks e getVideoTracks() em vez de videoTracks.
  2. A RTCPeerConnection agora tem getLocalStreams() em vez de localStreams e getRemoteStreams() em vez de remoteStreams.

Para conferir a MediaStream em ação, confira a demonstração getUserMedia simpl.info/gum. A variável stream está no escopo global: examine-a no console. Da mesma forma, para RTCPeerConnection em simpl.info/pc: os objetos RTCPeerConnection pc1 e pc2 estão no escopo global.

Chrome <=> Firefox

E caso você não tenha perdido, o Chrome agora pode "falar" com 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.

Agradecimentos aos profissionais da Mozilla e do Google que fizeram tudo acontecer.

Divirta-se com os códigos! Informe qualquer bug nos comentários desta postagem ou em bugs.chromium.org. E não se esqueça: você sempre pode conferir informações atualizadas sobre a implementação no excelente chromestatus.com.