WebRTC: demo di RTCDataChannel, modifiche all'API... e Chrome comunica con Firefox

Altre buone notizie dal nostro vecchio amico WebRTC.

Per essere precisi: tre buone notizie e un paio di modifiche di minore entità all'API.

RTCDataChannel per Chrome

RTCDataChannel è stato implementato in Chrome. È disponibile una piccola demo all'indirizzo simpl.info/dc.

Questa demo mostra la comunicazione peer-to-peer di dati arbitrari, in meno di cento righe di codice. A questo scopo, devi avere Chrome 25 o versioni successive, che a questo punto significa beta o Canary.

RTCDataChannel sfrutta al massimo le funzionalità integrate in RTCPeerConnection, non da ultimo l'utilizzo del framework ICE per superare firewall e NAT, e ha molte potenziali applicazioni per cui la bassa latenza è fondamentale: per i giochi, applicazioni desktop remoto, chat di testo in tempo reale e trasferimento di file.

Per ulteriori informazioni su RTCDataChannel, consulta la Guida introduttiva a WebRTC.

Modifiche all'API

Meno entusiasmante, ma comunque importante: a partire da Chrome 26, alcune proprietà RTCPeerConnection e API MediaStream sono diventate metodi getter:

  1. MediaStream ha ora il metodo getAudioTracks() anziché la proprietà audioTracks e getVideoTracks() invece di videoTracks.
  2. RTCPeerConnection ora ha getLocalStreams() invece di localStreams e getRemoteStreams() invece di remoteStreams.

Per vedere come funziona MediaStream, dai un'occhiata alla demo simpl.info/gum getUserMedia. La variabile stream è in ambito globale: esaminala dalla console. Allo stesso modo per RTCPeerConnection su simpl.info/pc: gli oggetti RTCPeerConnection pc1 e pc2 sono in ambito globale.

Chrome <=> Firefox

E nel caso che ti sia perso , Chrome ora può "parlare" con Firefox.

Puoi provarlo subito all'indirizzo webrtc.org/start, che offre istruzioni complete, link al codice sorgente e informazioni sulle differenze tra le API.

È un bel cappello a chi ha fatto tutto questo in Mozilla e Google.

Buona programmazione! Inoltre, segnalaci eventuali bug rispondendo a questo post o all'indirizzo bugs.chromium.org. Inoltre, non dimenticare che puoi sempre ottenere informazioni aggiornate sull'implementazione dal sito chromestatus.com.