2013-07-23 19 views
6

Sto provando a testare un'applicazione WebRTC. In questo momento, il meglio che posso fare è aprire diverse finestre di browser private e lasciarli parlare tra loro, ma questo chiaramente non è scalabile.Test di un'applicazione WebRTC

Sto cercando un modo per creare un numero elevato di peer su una singola macchina. Stavo cercando in Phantom.js ma non sembrava ancora supportare WebRTC. Eventuali suggerimenti?

risposta

8

Il problema è che PhantomJS attualmente è basato su QtWebKit e WebRTC richiede componenti da Chromium e WebKit.

Sarebbe molto lavoro per Phantom.js ri-implementare tutto questo - e ci sono anche problemi con il supporto dei codec, ecc. Mi viene anche in mente che in un ambiente senza testa sarebbe difficile testare getUserMedia(), che è fondamentale per WebRTC, ma richiede l'interazione dell'utente e non può essere copiato.

+7

Penso che WebRTC senza testa sarebbe utile per le applicazioni che usano i canali di dati piuttosto che i video. Ad esempio, reti peer-to-peer costituite da una combinazione di nodi browser e non browser. –

+0

@JesseHallett d'accordo! –

0

Per MediaStream può essere usato https://www.npmjs.com/package/mediastream come:

import { MediaStream as libMediaStream } from 'mediastream'; 

Per getUserMedia() può essere usato https://www.npmjs.com/package/get-user-media-promise come:

(<any>window.navigator).mediaDevices = Object.assign({}, 
    window.navigator.mediaDevices, 
    { getUserMedia: require('get-user-media-promise')} 
); 

RTCPeerConnection, dipende il test di unità, potrebbe essere preso in giro come :

window['RTCPeerConnection'] =() => { 
    return { 
    close:() => { }, 
    getTracks:() => { }, 
    addStream:() => { }, 
    createOffer:() => { }, 
    addIceCandidate:() => { }, 
    setRemoteDescription:() => { }, 
    createAnswer:() => { }, 
    setLocalDescription:() => { } 
    }; 
};