2013-07-23 47 views
6

Tôi đang cố thử nghiệm một ứng dụng WebRTC. Ngay bây giờ, điều tốt nhất tôi có thể làm là mở một số cửa sổ trình duyệt riêng tư và để họ nói chuyện với nhau, nhưng điều này rõ ràng không quy mô.Thử nghiệm ứng dụng WebRTC

Tôi đang tìm cách tạo số lượng lớn các đồng nghiệp trên một máy. Tôi đã nhìn vào Phantom.js nhưng nó dường như không hỗ trợ WebRTC. Bất kỳ đề xuất?

Trả lời

8

Vấn đề là PhantomJS hiện đang dựa trên QtWebKit và WebRTC cần các thành phần từ Chromium cũng như WebKit.

Sẽ có rất nhiều công việc để Phantom.js thực hiện lại tất cả những điều này - và cũng có vấn đề với hỗ trợ codec, v.v. Cũng xảy ra với tôi trong môi trường không đầu, thật khó để kiểm tra getUserMedia(), là nền tảng cho WebRTC, nhưng yêu cầu sự tương tác của người dùng và không thể được viết kịch bản.

+7

Tôi nghĩ rằng WebRTC không đầu sẽ hữu ích cho các ứng dụng sử dụng kênh dữ liệu thay vì video. Ví dụ: mạng ngang hàng được tạo thành từ hỗn hợp của các nút trình duyệt và không phải trình duyệt. –

+0

@JesseHallett đồng ý! –

0

Đối MediaStream nó có thể được sử dụng https://www.npmjs.com/package/mediastream như:

import { MediaStream as libMediaStream } from 'mediastream'; 

Đối getUserMedia() nó có thể được sử dụng https://www.npmjs.com/package/get-user-media-promise như:

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

RTCPeerConnection, phụ thuộc vào các bài kiểm tra đơn vị của bạn, có thể chế giễu như :

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