webRtc问题排查

1. 概述

WebRTC是“网络实时通信”(Web Real Time Communication)的缩写。它最初是为了解决浏览器上视频通话而提出的,即两个浏览器之间直接进行视频和音频的通信,不经过服务器。后来发展到除了音频和视频,还可以传输文字和其他数据。

Google是WebRTC的主要支持者和开发者,它最初在Gmail上推出了视频聊天,后来在2011年推出了Hangouts,语序在浏览器中打电话。它推动了WebRTC标准的确立。

WebRTC主要让浏览器具备三个作用。

  • 获取音频和视频
  • 进行音频和视频通信
  • 进行任意数据的通信

WebRTC共分成三个API,分别对应上面三个作用。

  • MediaStream (又称getUserMedia)
  • RTCPeerConnection
  • RTCDataChannel

2. 集成三方即时通讯服务遇到的问题

  1. 本地可用,发布到服务器不可用
  2. 发不到服务器后,多次尝试。部分firefox可用,chrome不可用
  3. 生产符合1、2条件,chrome还是不可用

2.1 问题一处理

表象

  • 首先排除网络问题
  • 其次网络是否有错误
  • 至此,熟悉的领域没有问题
  • webRtc
  • 至此,可以解释问题一

2.2 问题二处理

  1. firfox不要求origins检查
  2. 公司web服务firefox支持不好,部分firefox版本不可用

2.3 问题三处理

初步结论:三方js代码问题,错误的调用获取midea方法

查看三方js,可见

查看我方web可见

所以,三方代码没有走这个方法获取midea

但是,该方法是可用的

3. 其他问题

  • 媒体不可同时被多个浏览器获得
  • webRtc存在IP泄漏问题,故chrome存在origins要求