2013-07-05 8 views
5

Sto tentando di utilizzare WebRTC per il solo decentralizzato e comunicazioni peer-to-peer. Sto cercando di costruire una rete di sovrapposizione P2P, in cui i nodi scambiano i dettagli di altri nodi in modo che possano connettersi a loro.I blob WebRTC SDP sono riutilizzabili tra pari?

Se io scambio blob SDP (session description objects) tra i nodi, sono essi riutilizzabili nel senso che ho potuto stabilire un collegamento ad un nodo semplice dato questo blob e un candidato ICE?

risposta

4

Generalmente no: è necessario un'offerta dalla sorgente PeerConnection; non è garantito che un BLOB per PC1 possa essere utilizzato con PC2 (e probabilmente non può). Ora, se hanno creato una peerconnection, fatto CreateOffer, e tengono il peerconnection fino a quando non viene usato SDP - allora sì, ma quel "non realmente" riutilizzo ".

Si potrebbe farla franca, ma varie cose ora o in futuro potrebbero violare in modo semi-casuale. La soluzione migliore è creare un'offerta dal nodo di origine e passarla sulla rete p2p al nodo di destinazione, che può quindi restituire una risposta. Se è possibile mantenere attivo un PC in attesa di transazioni in entrata, la "fonte" potrebbe utilizzarlo per createAnswer e tagliare un viaggio attraverso la rete p2p. Avresti bisogno di gestire collisioni (due nodi che tentano di utilizzare la stessa offerta che è stata distribuita attraverso la rete, in pratica una configurazione di fail/retry dovrebbe gestirla nei rari casi in cui è necessario). Puoi anche includere nella risposta un'offerta da utilizzare in caso di collisione.

+0

Potrebbe giustificare l'argomento che un BLOB per PC1 non può essere utilizzato con PC2? Non che io metta in dubbio, vorrei solo sapere in particolare quale aspetto lo impedisce. – liamzebedee