peerconnect-client与server信令获取和交互流程

本文详细介绍了webRTC的点对点通信信令交互过程,包括offer、answer和candidate的生成与交换。通过创建PeerConnection对象,设置本地描述并发送给对方,再接收并处理对方的描述和candidate,实现两端的信令通信。最后,文章提到了下一步将分析Candidate数据信息的含义。
摘要由CSDN通过智能技术生成

原因:上个文章只是介绍了一下client和server端的简单协议交互,并没有涉及到webRTC的信令交互.即offer,answer,candidate等。

概述:webRTC的通信为点对点,则每个点都会创建自己的offer和candidate发送给对端,对端收到后创建自己的answer和candidate进行回复。然后webRTC内部进行candidate连通测试。下面利用代码进行简单描述。

接上文获取在线列表成员,然后点击成员进行连接调用代码如下,通过代码可以看出首先进行创建PeerConnection对象,然后创建本地的audio_track,video_track及准备需要的Mediastream.然后初始化成功后调用CreateOffer方法.

void Conductor::ConnectToPeer(int peer_id) {
	LOG(INFO) << __FUNCTION__;

  RTC_DCHECK(peer_id_ == -1);
  RTC_DCHECK(peer_id != -1);

  if (peer_connection_.get()) {
    main_wnd_->MessageBox("Error",
        "We only support connecting to one peer at a time", true);
    return;
  }

  if (InitializePeerConnection()) {
    peer_id_ = peer_id;
    peer_connection_->CreateOffer(this, NULL);
  } else {
    main_wnd_->MessageBox("Error", "Failed to initialize PeerConnection", true);
  }
}

当CreateOffer成功后则内部会进行事件回调,事件主要定义在CreateSessionDescriptionObserver中.通过定义可以看出主要实现回调为CreateOffer和CreateAnswer.

// CreateOffer and CreateAnswer callback interface.
class CreateSessionDescriptionObserver : public rtc::RefCountInterface {
 public:
  // This callback transfers the ownership of the |desc|.
  // TODO(deadbeef): Make this take an std::unique_ptr<> to avoid confusion
  // around ownership.
  virtual void OnSuccess(SessionDescriptionInterface* desc) = 0;
  virtual void OnFailure(const std::string& error) = 0
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值