美文网首页
WebRTC信令交互流程

WebRTC信令交互流程

作者: 张俊峰0613 | 来源:发表于2018-12-05 09:57 被阅读0次

WebRTC信令交互流程:


WebRTC信令交互流程

上述序列中,WebRTC并不提供Stun服务器和Signal服务器,服务器端需要自己实现。Stun服务器可以用google提供的实现stun协议的测试服务器(stun:stun.l.google.com:19302),Signal服务器则完全需要自己实现了,它需要在ClientA和ClientB之间传送彼此的SDP信息和candidate信息,ClientA和ClientB通过这些信息建立P2P连接来传送音视频数据。由于网络环境的复杂性,并不是所有的客户端之间都能够建立P2P连接,这种情况下就需要有个relay服务器做音视频数据的中转。这里说明一下, stun/turn、relay服务器的实现在WebRTC源码中都有示例。

上述序列中,标注的场景是ClientA向ClientB发起对聊请求,调用描述如下:

  • ClientA首先创建PeerConnection对象,然后打开本地音视频设备,将音视频数据封装成MediaStream添加到PeerConnection中。
  • ClientA调用PeerConnection的CreateOffer方法创建一个用于offer的SDP对象,SDP对象中保存当前音视频的相关参数。ClientA通过PeerConnection的SetLocalDescription方法将该SDP对象保存起来,并通过Signal服务器发送给ClientB。
  • ClientB接收到ClientA发送过的offer SDP对象,通过PeerConnection的SetRemoteDescription方法将其保存起来,并调用PeerConnection的CreateAnswer方法创建一个应答的SDP对象,通过PeerConnection的SetLocalDescription的方法保存该应答SDP对象并将它通过Signal服务器发送给ClientA。
  • ClientA接收到ClientB发送过来的应答SDP对象,将其通过PeerConnection的SetRemoteDescription方法保存起来。
  • 在SDP信息的offer/answer流程中,ClientA和ClientB已经根据SDP信息创建好相应的音频Channel和视频Channel并开启Candidate数据的收集,Candidate数据可以简单地理解成Client端的IP地址信息(本地IP地址、公网IP地址、Relay服务端分配的地址)。
  • 当ClientA收集到Candidate信息后,PeerConnection会通过OnIceCandidate接口给ClientA发送通知,ClientA将收到的Candidate信息通过Signal服务器发送给ClientB,ClientB通过PeerConnection的AddIceCandidate方法保存起来。同样的操作ClientB对ClientA再来一次。
  • 这样ClientA和ClientB就已经建立了音视频传输的P2P通道,ClientB接收到ClientA传送过来的音视频流,会通过PeerConnection的OnAddStream回调接口返回一个标识ClientA端音视频流的MediaStream对象,在ClientB端渲染出来即可。同样操作也适应ClientB到ClientA的音视频流的传输。

相关文章

  • WebRTC信令交互流程

    WebRTC信令交互流程: 上述序列中,WebRTC并不提供Stun服务器和Signal服务器,服务器端需要自己实...

  • WebRTC之信令篇

    在WebRTC中,信令发挥着举足轻重的作用,但是webrtc工作组并没有对信令交互进行标准化,留给开发人员自行选择...

  • KMS应用架构设计

    KMS架构 KMS交互 媒体协商(信令面) 媒体传输 对于WebRTC,媒体协商就是SDP Offer/Answe...

  • WebRTC网关服务器单端口方案实现

    标准WebRTC连接建立流程这里描述的是Trickle ICE过程,并且省略了通话发起与接受的信令部分。流程如下:...

  • WebRTC 服务器要干些什么

    概述 WebRTC 的服务器大体分为信令服务器和媒体服务器 WebRTC 信令服务器是主要功能是为 WebRTC ...

  • webrtc的信令传输流程

    1 webrtc介绍 WebRTC (Web Real-Time Communications) 是一项实时通讯技...

  • WebRTC 控制信令流程图

    自己画的 webrtc 协议流程图,主要是信令控制方面的,底层媒体传输协议,如 SRTP、QUIC 等未包含。

  • android webrtc 两个手机 P2P 视频聊天

    webrtc 很简单,核心流程就是上面这张图。唯一需要我们实现的就是 signal sever。当然信令交换一般都...

  • WebRTC客户端主要流程分析

    通信过程 因为WebRTC规范里没有包含信令协议,所以像OWT、mediasoup等支持WebRTC的开源项目,其...

  • webrtc

    使用WebRTC搭建前端视频聊天室——入门篇使用WebRTC搭建前端视频聊天室——信令篇Android之WebRTC介绍

网友评论

      本文标题:WebRTC信令交互流程

      本文链接:https://www.haomeiwen.com/subject/nkgvcqtx.html