Webrtc从理论到实践六: Webrtc官方demo运行

系列文章目录

Webrtc从理论到实践一:初识
Webrtc从理论到实践二: 架构
Webrtc从理论到实践三: 角色
Webrtc从理论到实践四: 通信
Webrtc从理论到实践五: 编译webrtc源码



操作步骤

  1. 在工程目录下找到examples文件夹,然后找到peerconnection_client 和 peerconnection_server工程,可以选择生成debug或者release版本的exe文件,成功之后会在out/debug(release)目录下生成两个exe文件
    在这里插入图片描述
    在这里插入图片描述

  2. 先双击运行peerconnection_server.exe 文件,会监听8888端口
    在这里插入图片描述

  3. 然后双击运行peerconnection_client.exe文件
    在这里插入图片描述

  4. 这里发现在我的电脑上使用localhost是连不上peerconnection_server.exe的,于是我ping了一下localhost,发现电脑主机会解析成ipv6的地址[::1]
    在这里插入图片描述
    然后便参考了这篇文章 WIN10 Localhost 无法打开 怎么解决,然后按照文章中的描述我执行到第三步确实可以解决localhost 解析不成127.0.0.1的问题。
    在这里插入图片描述
    你以为问题到这里就解决了吗,No,No,No,当我在peerconnection_client 里面输入localhost:8888点击连接的时候,发现server端没有任何反应,于是我便开始怀疑是webrtc的源码对于localhost的解析有问题,因为如果把localhost换成127.0.0.1,server端是有反应的(**虽然也有问题,不会按照正常的流程往下走,一直停留在new Connection… )
    我又去查看了一下peerconection_client的源码,可以看到它解析域名的一个过程:
    在这里插入图片描述
    在连接服务器的的过程中,它会去检测从UI上获取的server_address_是不是一个IP地址,如果不是就 会创建一个类AsyncResolver,从这个类名我们也可以看出这是一个异步解析域名的类,然后下面一句还使用信号与槽的机制,当解析完成后就会触发OnResolveResult()函数。
    在这里插入图片描述
        但是后面把断点打到OnResolveResult()里面发现根本走不进来,再加上之前 使用127.0.0.1也无法正确执行下去,所以这里大概率可以得出结论是webrtc的版本问题,后面也在webrtc的论坛里验证了我的想法
    webrtc win10 vs2019 complie peerconnection_client.exe peerlist can`t display

  5. 切换到稳定版本
    在这里插入图片描述
    可以参考这里的分支对照表切换到你想要的版本,我选择的是m89版本,切换好之后需要执行gclient sync同步一下,但是可能会遇到以下问题

error: 7> 7> ____ src\tools at 03a8864bc66bd6bbc0014ab62551b4465251729e 
7> you have unstaged changes. 
7> please commit, stash, or reset.

    解决方法:执行gclient sync -f 即可

  1. 重新编译,运行
    切换到稳定版本后,需要重新生成client和server两个文件,然后双击运行即可,我在本地起了两个客户端做演示,连接之后会出现进入房间的主机列表,双击对方主机即可通信。
    在这里插入图片描述

在这里插入图片描述


总结

切换稳定版本,重新编译运行

下一篇:Webrtc从理论到实践七: 官方demo源码走读(一)

猜你喜欢

转载自blog.csdn.net/qq_39304481/article/details/126480660