[zz]WebRTCEvent

本文深入解析erizo中WebRTCConnection的事件机制,包括事件类型、触发条件及正确使用方法,适用于主动发送offer和被动接收offer场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

licode学习之erizo篇–WebRTCEvent

-zz
erizo的webrtcconnection使用监听来通知事件,其接口为:

enum WebRTCEvent {
  CONN_INITIAL = 101, CONN_STARTED = 102, CONN_GATHERED = 103, CONN_READY = 104, CONN_FINISHED = 105,
  CONN_CANDIDATE = 201, CONN_SDP = 202, CONN_SDP_PROCESSED = 203,
  CONN_FAILED = 500
};

class WebRtcConnectionEventListener {
 public:
    virtual ~WebRtcConnectionEventListener() {
    }
    virtual void notifyEvent(WebRTCEvent newEvent, const std::string& message, const std::string &stream_id = "") = 0;
};

在event发生时,其参数的内容进行总结:

1、CONN_INITIAL:WebrtcConnection对象创建后,需要外面手动调用init方法,该方法会回调notifyEvent,并传递事件为改枚举值,message和stream_id均为空值。

2、CONN_STARTED:这个状态没有看到里面有明显调用的地方,有可能是保留的状态码

3、CONN_GATHERED:WebrtcConnection的createOffer或者第一次setRemoteSdp时启动自身ICE过程,ICE完成收集时,发送该通知。message为自己的sdp数据

4、CONN_READY:当DTLS握手交互成功完成时,发送该通知

5、CONN_FINISH:WebrtcConnection对象关闭,调用close时,发送该通知

6、CONN_CANDIDATE:自身ICE获取到Candidate时,发送该通知。message为candidate信息

7、CONN_SDP:没有被使用

8、CONN_SDP_PROCESSED:处理remote sdp时,发送该通知。message为remote sdp

9、CONN_FAILED:ICE失败,Dtls握手交互失败,均发送该通知。message为remote sdp

基于事件的进一步理解,webrtcconnection的使用的正确方法为:

A、erizo主动发送offer

a、webrtcconnection createOffer

b、CONN_GATHERED时,发送sdp给client

c、CONN_CANDIDATE时,发送candidate给client

d、接收到answer,调用webrtcconnection setRemoteSdp

e、接收到candidate,调用webrtcconnection addRemoteCandidate

f、CONN_SDP_PROCESSED时,做私有处理

g、CONN_FAILED时,进行重试,或者其他异常处理

B、erizo被动接收offer

a、接收到answer,调用webrtcconnection setRemoteSdp

b、接收到candidate,调用webrtcconnection addRemoteCandidate

c、CONN_GATHERED时,发送sdp给client

d、CONN_CANDIDATE时,发送candidate给client

e、CONN_FAILED时,进行重试,或者其他异常处理

分类: licode
标签: erizo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值