Peer.js

DataChannel di WebRTC

Presentazione di Matteo Colucci / @il_matita

Premi N (Next) o P (Previous) per navigare le slide

Cos'è WebRTC

WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple JavaScript APIs.

In parole povere

Connessioni peer to peer nel browser per:

Video

Audio

Dati

Come funziona WebRTC?

STUN Server

Ogni Peer chiede il proprio indirizzo a un server STUN

Il server risponde con l'indirizzo pubblico del peer

Offer

Il peer trasmette le proprie informazioni (SDP, Session Description Protocol) a chi si vuole connettere

Il Signaling Channel (canale di trasmissione dell'SDP) può essere qualunque cosa (Websocket, email, IM, ...)

Answer

Il peer ricevente trasmette le proprie informazioni (SDP) all'offerente

Si instaura la connessione peer to peer

TURN Server (fallback)

Se i peer non riescono a connettersi a causa del firewall si appoggiano a un server TURN, che fa da proxy tra i peer

Cos'è Peer.js?

Wrapper di WebRTC

  1. API di più alto livello
  2. Vendor prefix free
  3. Set di oggetti Event dispatcher

Peer Server

Implementazione del signaling channel

Server open source in node.js - GitHub

PeerServer Cloud gratuito per sviluppatori - PeerServer Cloud

Codice di esempio

var peer = new Peer({ key: 'peer-server-cloud-key' });
						
peer.on('open', function(peerId) {
  // peer connesso al PeerServer
  // peerId da mandare agli altri peer
});

peer.on('connection', function(conn) {
  initConnection(conn);
});

function initConnection(conn) {
  conn.on('open', function() {
    conn.on('data', function(data) {
      // fai qualcosa con i dati ricevuti
    });
    conn.send({ foo: 'bar' });
  });
}

initConnection(peer.connect(otherPeerId));

Inizio del quiz

Connettiti tramite smartphone

Android && (Chrome || Firefox)

Alcuni progetti

Risorse

Grazie per l'attenzione

Slides powered by reveal.js