webrtc学习笔记1(建立连接基本流程)

最近在做一个基于webrtc的视频软件,以下是自己对于上层建立通话连接流程的基本理解,记录于此。

假设A和B要建立视频通话,A为房间创建端,B为加入房间端:

1、A通过http登录、获取其他服务器地址(做一些保存用户信息的操作,获取信令、stun、turn服务器地址等,非必要)

2、A和信令服务器建立websocket长连接

3、A通过websocket向信令服务器注册(创建房间,记录房间号,等待B加入房间)

4、A创建本地视频,获取A的sdp信息

5、B创建本地视频,获取B的sdp信息

6、B发送本地sdp信息到信令服务器sendOffer

6.1、B同时也在向stun(穿越)、turn(延时转发)服务器获取ice信息

6.2、B发送ice信息到信令服务器(后续会和A交换3种信息,不再赘述)

7、信令服务器转发sdp、ice信息到A(通过房间号辨别)

8、A将B的sdp信息设置到底层setRemoteDescription

8.1、A添加B的ice信息

8.2、A同时也在向stun(穿越)、turn(延时转发)服务器获取ice信息

8.3、A发送ice信息到信令服务器(后续会和B交换3种信息,不再赘述)

9、A发送本地sdp信息到信令服务器sendAnswer

10、信令服务器转发sdp信息到B

11、B将A的sdp信息设置到底层setRemoteDescription

在交换sdp信息的同时,ice信息也在进行交换,通过交换ice信息,最终会选择一种合适的方式来建立连接(p2p或者基于turn服务器的延时转发通路)

 

posted @ 2015-07-22 19:45  不吃早饭好不好  阅读(2295)  评论(0编辑  收藏  举报