webRtc问题排查
1. 概述
WebRTC是“网络实时通信”(Web Real Time Communication)的缩写。它最初是为了解决浏览器上视频通话而提出的,即两个浏览器之间直接进行视频和音频的通信,不经过服务器。后来发展到除了音频和视频,还可以传输文字和其他数据。
Google是WebRTC的主要支持者和开发者,它最初在Gmail上推出了视频聊天,后来在2011年推出了Hangouts,语序在浏览器中打电话。它推动了WebRTC标准的确立。
WebRTC主要让浏览器具备三个作用。
- 获取音频和视频
- 进行音频和视频通信
- 进行任意数据的通信
WebRTC共分成三个API,分别对应上面三个作用。
- MediaStream (又称getUserMedia)
- RTCPeerConnection
- RTCDataChannel
2. 集成三方即时通讯服务遇到的问题
- 本地可用,发布到服务器不可用
- 发不到服务器后,多次尝试。部分firefox可用,chrome不可用
- 生产符合1、2条件,chrome还是不可用
2.1 问题一处理
表象
- 首先排除网络问题
- 其次网络是否有错误
- 至此,熟悉的领域没有问题
- webRtc
- 至此,可以解释问题一
2.2 问题二处理
- firfox不要求origins检查
- 公司web服务firefox支持不好,部分firefox版本不可用
2.3 问题三处理
初步结论:三方js代码问题,错误的调用获取midea方法
查看三方js,可见
查看我方web可见
所以,三方代码没有走这个方法获取midea
但是,该方法是可用的
3. 其他问题
- 媒体不可同时被多个浏览器获得
- webRtc存在IP泄漏问题,故chrome存在origins要求