博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webrtc学习笔记1(建立连接基本流程)
阅读量:4940 次
发布时间:2019-06-11

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

最近在做一个基于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服务器的延时转发通路)

 

转载于:https://www.cnblogs.com/dixonyy/p/4668429.html

你可能感兴趣的文章
SqlServer 删除重复记录
查看>>
win10下sublime text3 使用view in browser的快捷鍵添加方式
查看>>
【Linux】神奇的kill
查看>>
关于radio属性如何添加成为双击取消
查看>>
Servlet的生命周期
查看>>
《Linux 性能及调优指南》1.1 Linux进程管理
查看>>
Spring Security使用心得
查看>>
操作系统简介
查看>>
【IntelliJ 】IntelliJ IDEA 15 创建maven项目
查看>>
Maven入门---修改tomcat版本及端口及访问路径(四)
查看>>
Ajax异步请求struts的JSON机制(省市区三级联动)
查看>>
mysql中的union用法以及子查询综合应用
查看>>
jQuery使用总结
查看>>
Oracle数据库事物隔离级别
查看>>
多变的形状
查看>>
Navicat For Mysql快捷键
查看>>
Git学习笔记4
查看>>
【Android】用Cubism 2制作自己的Live2D——官方App样例源码学习(2)!
查看>>
利用锚点制作简单索引效果
查看>>
Photoshop
查看>>