关于WebRTC教程学习中存在的问题

今天是实习的第三周开始,前几天由于要做人脸识别相关的项目,分配到了实现WebRTC这一部分的任务。上一次的项目汇报会议上,由于会议前从各方面搜集的demo或者博客教程都存在版本过时或其他各种各样的问题,一直未能打通WebRTC,无奈取消了这一部分的计划。后来由于自己还是希望能再多尝试学习一下,功夫不负有心人,终于在多番搜索后找到一份日期比较新而且附有demo的教程,以下是该教程的网址:

WebRTC实时通信系列教程

这一两天跟着教程学习使用终于实现了双端通信,包括PC-PC、PC-移动端、移动端-移动端,但还是存在各种各样的问题,首先先描述一下以上链接里教程的学习情况:

  1. 依据上述链接里的教程操作的话,从第八个教程(对应的demo是step-05文件夹)开始就会出现很明显的问题(前面的教程是否出现问题已经有点遗忘,可能是没有太大影响而被我忽略了);

  2. 从第八个教程开始可以实现一对一双端视频通信,教程里在两个不同的浏览器标签里分别打开 localhost:8080,而我为了测试不同设备间的通信,经网上查询后学习使用ngrok这一神器来实现不同设备间的测试;

以下记录学习中遇到的问题(基本上我都还没解决):

  1. 第八个教程实现双端通信时可能会面临浏览器兼容问题?因为我尝试了用IE浏览器打开但提示 getUserMedia() error: NotSupportedError ,不过由于我的主要目标不在这里,就没有去纠结这个问题,而是在后续的学习调试中都一律使用Firefox浏览器;

  2. 直接打开第八个教程似乎并不能成功实现,我为此尝试了一整个上午加半个下午,发现似乎得先运行第七个教程(对应的demo是step-04文件夹),这是经调试后推断可能的原因,由于时间太短,没来得及反复验证,不保证正确;

  3. 即便实现双端通信,打开控制台仍能发现报错中涉及跨域问题,但似乎仍能实现正常的一对一双端通信,故同样由于时间问题没有在这个问题上花费太多时间;

  4. 实现双端通信后,若本次通信终止,按照教程似乎应该重新开启node才能实现下一次通信;

  5. 第九个教程(对应的demo是step-06文件夹)一直测试不成功,一方进入给定网址房间后,另一方再进入房间就会不断提示房间已满请求更换房间;

  6. 关于移动端设备的通信,我在4台手机上进行测试后,发现只有其中两台红米note3可以实现通信,另一台安卓手机(当时没去仔细注意牌子)只能打开摄像头看到本地视频,而无法与远程设备通信,另一台ios手机完全没有请求调用摄像头。

以上就是学习过程中遇到的并且尚未解决的问题,而且由于已经经过一段时间故而可能出现描述不完全匹配的情况。这里记录下来是为了以后再次学习时能帮助回忆。

PS:学习WebRTC过程中也让我学到了其他很多东西,比如网络、再比如ngrok这一神器。

你可能感兴趣的:(关于WebRTC教程学习中存在的问题)