博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android IOS WebRTC 音视频开发总结(二四)-- p2p调用堆栈
阅读量:6962 次
发布时间:2019-06-27

本文共 630 字,大约阅读时间需要 2 分钟。

本文主要分析webrtc音视频点对点部分的代码结构,文章来自博客园RTC.Blacker,转载请说明出处.

前段时间在查一个偶尔断线的问题(这种问题最蛋疼,不好重现,只能凭经验去搞),所以理了下webrtc的P2P代码结构,总结如下:

先来张图显示实际会话过程中的两种通讯路径:P2P或转发,92%的情况下是通过P2P实现.

注意:实际通讯过程中每个客户端都会不停地发送和接收Stun包,这样做是为了维护响应的连接和端口.

实际通讯过程中的核心组件为P2PTransportChannel,他代表着本地和远程计算机的连接通道,

管理着许多本地和远程计算机上许多不同的连接类型的连接对象,如TCP,udp,

连接对象上包含了本地端口和远程地址信息,当一个连接失败时他会无缝地切换到另一个连接上,下图是P2P数据通道的内部结构图

下面是代码结构中堆栈调用过程:

1,接收和发送数据的AsyncUDPSocket创建过程如下:

2,呼叫方根据remotecandidate创建连接并执行Ping过程如下:

3、接收方根据remotecandidate创建连接并执行Ping过程如下:

4、收到Stun响应更改连接状态调用过程如下:

 

5、连接成功建立开始数据收发调用过程如下:

 

posted on
2015-03-10 18:22 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lingyunhu/p/rtc24.html

你可能感兴趣的文章
这个qq的域名【c.gj.qq.com】是做什么的?chrome浏览器,访问什么网站都有这个请求...
查看>>
ubuntu14.04+Django1.7.1+nginx1.6+uwsgi2.0环境搭建
查看>>
C++中的类型转换
查看>>
大数据引发的变革与企业面临的挑战
查看>>
LRSlidingTableViewCell
查看>>
FlipCardNavigationView
查看>>
【系统日志笔记二】——撸起袖子写个自定义日志注解
查看>>
完全平衡树的简单实现(Scala)
查看>>
HttpServlet详解
查看>>
无线网络
查看>>
架构设计:生产者/消费者模式 第4页:注意事项
查看>>
1233
查看>>
php写入文件权限失败 file_put_contents: failed to open stream: Permission denied
查看>>
MarMoible的 java4android视频
查看>>
我想象的创业团队
查看>>
Android 自定义控件实现点击波浪效果(九)
查看>>
MySQL单列索引和组合索引的区别介绍
查看>>
Git命令
查看>>
aws S3 util demo
查看>>
react native ios 网络请求问题
查看>>