Тестирование приложения WebRTC
Я пытаюсь протестировать приложение WebRTC. Сейчас лучшее, что я могу сделать, - это открыть несколько частных окон браузера и позволить им общаться друг с другом, но это явно не масштабируется.
Я ищу способ создать большое количество пиров на одной машине. Я заглядывал в Phantom.js, но он пока не поддерживал WebRTC. Какие-либо предложения?
2 ответа
Проблема в том, что PhantomJS в настоящее время основан на QtWebKit, а WebRTC нужны компоненты из Chromium, а также WebKit.
Для Phantom.js было бы много работы, чтобы все это реализовать заново - и есть также проблемы с поддержкой кодеков и т. Д. Мне также кажется, что в безголовой среде было бы трудно протестировать getUserMedia(), который является фундаментальным для WebRTC, но требует взаимодействия с пользователем и не может быть написан в сценарии.
Для MediaStream его можно использовать https://www.npmjs.com/package/mediastream как:
import { MediaStream as libMediaStream } from 'mediastream';
Для getUserMedia() его можно использовать https://www.npmjs.com/package/get-user-media-promise как:
(<any>window.navigator).mediaDevices = Object.assign({},
window.navigator.mediaDevices,
{ getUserMedia: require('get-user-media-promise')}
);
RTCPeerConnection, в зависимости от ваших модульных тестов, может быть смоделирован как:
window['RTCPeerConnection'] = () => {
return {
close: () => { },
getTracks: () => { },
addStream: () => { },
createOffer: () => { },
addIceCandidate: () => { },
setRemoteDescription: () => { },
createAnswer: () => { },
setLocalDescription: () => { }
};
};