码迷,mamicode.com
首页 > 移动开发 > 详细

Android IOS WebRTC 音视频开发总结(二四)

时间:2015-03-10 19:06:56      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

技术分享

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

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

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

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

技术分享

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

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

技术分享

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

技术分享

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

技术分享

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

技术分享

 

技术分享

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

技术分享

 

Android IOS WebRTC 音视频开发总结(二四)

标签:

原文地址:http://www.cnblogs.com/lingyunhu/p/rtc24.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!