是否可以使用webRTC跨浏览器?

时间:2017-03-04 20:56:48

标签: javascript webrtc

我正在使用webRTC并使用SIP和websockets的自我实现进行对等连接。

当我测试流时,我能够在每个对等体上流式传输并查看远程和本地流。此测试在每个对等体的相同浏览器不同选项卡上。在Firefox和Chrome中成功完成测试

当我在Firefox中测试一个对等体并在Chrome中进行另一个对等体测试时,反之亦然,那么我看不到本地流,但我可以使用远程。

控制台中不显示任何异常或错误。 在这种情况下,当在不同的浏览器中使用一个对等体和其他对等体但是在同一个浏览器中使用它时,流会失败吗?

我可以做些什么来调试它?

2 个答案:

答案 0 :(得分:0)

我敢打赌,当您在实现中尝试将SIP作为SIP over websocket时,浏览器之间存在SDP兼容性问题。你必须尝试开源库,如SIPjs,JSsip,SIPml5,它已经通过websocket进行SIP。

  

控制台中没有显示异常或错误。

确保您在访问webRTC API时已将所有可能的失败案例catch(err)添加到日志记录中。

JSsip https://tryit.jssip.net/

的在线演示

答案 1 :(得分:0)

WebRTC在Chrome和Firefox中均可用,但有些API不同。 您需要编写适配器或使用现有的WebRTC适配器库来实现这两者之间的兼容性。

例如,一个简单的适配器看起来像这样:

var MediaStream =  $window.webkitMediaStream || $window.MediaStream;
var PeerConnection = $window.mozRTCPeerConnection || $window.webkitRTCPeerConnection || $window.RTCPeerConnection;
var IceCandidate = $window.mozRTCIceCandidate || $window.webkitRTCIceCandidate || $window.RTCIceCandidate;
var SessionDescription = $window.mozRTCSessionDescription || $window.webkitRTCSessionDescription || $window.RTCSessionDescription;

我强烈建议您使用https://github.com/webrtc/adapter之类的适配器库,这样您就不必手动处理所有边缘情况。

希望这有帮助。