我正在尝试测试 WebRTC 应用程序。现在我能做的最好的就是打开几个私人浏览器窗口并让它们相互交谈,但这显然不能扩展。
我正在寻找一种在单台机器上创建大量对等点的方法。我正在研究 Phantom.js,但它似乎还不支持 WebRTC。有什么建议么?
我正在尝试测试 WebRTC 应用程序。现在我能做的最好的就是打开几个私人浏览器窗口并让它们相互交谈,但这显然不能扩展。
我正在寻找一种在单台机器上创建大量对等点的方法。我正在研究 Phantom.js,但它似乎还不支持 WebRTC。有什么建议么?
问题是 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: () => { }
};
};