您当前的位置: 首页 >  服务器

命运之手

暂无认证

  • 1浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Android音视频开发】【035】WEBRTC之信令服务器搭建与信令协议

命运之手 发布时间:2021-09-24 11:09:14 ,浏览量:1

WebRTC的技术组成

WebRTC技术主要包括三大部分

音视频通讯,这部分是最难的,但是Google的WebRTC框架,已经完整地实现了这一部分,不需要我们操心

点对点通信,这个我们在前两篇博客中已经详细讲过,通过ICE服务器可以实现这部分功能

业务逻辑,虽然ICE服务器已经允许我们建立点对点连接,但这是在通信双方互相知道对面地址的前提下

在实际应用中,具体要和谁进行通话,对方的网络地址是什么,对方支持的媒体格式是什么,这些是要通过额外的一个服务器来进行交换的,这个服务器就叫信令服务器

信令服务器的实现并不难,只需要一个共用的WebSocket服务器,相互交换字符串信息就行了

WebRTC的信令服务器,是有标准的规范协议的,我们了解这一协议和流程后,按照步骤做就行了

WebRTC信令协议

这张图片是很久以前做的,里面的媒体服务器实际是网络穿透服务器

由于当时还没有系统学习过音视频,误把网络穿透服务器当成媒体服务器,以为它是用来交换音视频数据的

在这里插入图片描述 WebRTC术语说明

SDP:Session Description Protocol,会话描述协议,就是流媒体客户端之间用来进行会话协商的协议

SDP包含了设备地址,设备参数,媒体参数等消息,通过SDP可以告诉目标客户端自己的客户端参数

Offer:呼叫方发出的SDP

Answer:接听方发出的SDP

LocalSDP:自己的SDP

RemoteSDP:对方的SDP

IceCandidate:点对点通信备选线路

了解这些后,我们可以发现,其实整个流程非常简单,本质就是

两个客户端交换SDP后,通过WebRTC框架拿到可用的Candidate,然后再逐个线路尝试,看看该线路是否能够连通

底层的代码,只需调用WebRTC框架完成即可,大家直接看代码就行

WebRTC源码

这是一个全平台方案,包含了服务端,网页,Android客户端

由于2021年,网页端的WebRTC进行了一次重要更新,但是Android客户端的库由于没有人维护,所以Android客户端是无法与2021年后的浏览器版本进行通信的,但是Android和Android,网页和网页直接通信是没问题的

其实还有一个更好的方案,就是移动客户端内嵌网页,这样既解决了兼容性问题,同时IOS和PC端也可用

由于WebRTC最早是在网页端实现的,网页的WebRTC框架是比移动端要更完善的,浏览器内核一般都有人维护更新,但是移动端的库很多没人维护

WebRTC全平台方案.zip

记得客户端要修改信令服务器和ICE服务器的地址

Nodejs等环境的安装,自己学习下就行了,本博客只讲音视频知识本身

关注
打赏
1654938663
查看更多评论
立即登录/注册

微信扫码登录

0.5314s