WebRTC的三大线程

WebRTC中的三个主要线程:

  1. signaling_thread,信号线程:用于与应用层交互
  2. worker_thread,工作线程(最核心):负责内部逻辑处理
  3. network_thread,网络线程:负责网络数据包的收发

webrtc中的其他线程都是通过这三个线程创建出来的!!

webrtc中创建三个线程的位置:

cpp 复制代码
// src/examples/peerconnection/client/conductor.cc
bool Conductor::InitializePeerConnection() {
	peer_connection_factory_ = webrtc::CreatePeerConnectionFactory();
}

// src/pc/peer_connection_factory.cc
PeerConnectionFactory::PeerConnectionFactory(
    PeerConnectionFactoryDependencies dependencies)
{
	if (!network_thread_) {
	    owned_network_thread_ = rtc::Thread::CreateWithSocketServer(); // CreateWithSocketServer() 用于处理网络事件
	    owned_network_thread_->SetName("pc_network_thread", nullptr);
	    owned_network_thread_->Start();
	    network_thread_ = owned_network_thread_.get();
	}

	  if (!worker_thread_) {
	    owned_worker_thread_ = rtc::Thread::Create(); // Create() 不处理网络事件
	    owned_worker_thread_->SetName("pc_worker_thread", nullptr);
	    owned_worker_thread_->Start();
	    worker_thread_ = owned_worker_thread_.get();
	  }

	  if (!signaling_thread_) {
	    signaling_thread_ = rtc::Thread::Current(); // Current() 默认将主线程当做signal线程
	    if (!signaling_thread_) {
	      signaling_thread_ = rtc::ThreadManager::Instance()->WrapCurrentThread();
	      wraps_current_thread_ = true;
	    }
	  }
}

PS:编码技巧:当传入的参数较多时,可以打包成一个结构体传下去,如dependencies,其中指定

dependencies.network_thread, dependencies.signaling_thread, dependencies.worker_thread 等,

以及火山引擎SDK中的video_frame等,都是如此

相关推荐
拖孩2 天前
[特殊字符]我在 Chatterbox(话匣子)中 WebRTC 的使用-上篇(基本介绍)
开发语言·php·webrtc
多看书少吃饭2 天前
WebRTC简介及应用
前端·vue.js·websocket·webrtc
chen_song_4 天前
WebRTC中音视频服务质量QoS之FEC+NACK调用流程
udp·音视频·webrtc·rtc·h264·nack·fec
_洛_神7 天前
Webrtc编译官方示例实现视频通话
音视频·webrtc
EasyCVR7 天前
跨平台IPC通信、嵌入式WebRTC轻量化引擎:解析EasyRTC在ARM/Linux平台的性能突破
linux·arm开发·webrtc
GDAL7 天前
WebRTC协议全面教程:原理、应用与优化指南
webrtc
m0_748240028 天前
WebRTC实现双端音视频聊天(Vue3 + SpringBoot)
spring boot·音视频·webrtc
乔冠宇8 天前
通过webrtc+canvas+css实现简单的电脑滤镜拍照效果
webrtc
TSINGSEE9 天前
EasyRTC轻量级Webrtc音视频通话SDK,助力带屏IPC在嵌入式设备中的应用
arm开发·微信·架构·音视频·webrtc
堕落年代9 天前
WebRTC建立Description的通信的实际的原理
网络·webrtc