WebRTC的线程事件处理

1. 不同平台下处理事件的API:

  1. Linux系统下,处理事件的API是epoll或者select;
  2. Windows系统下,处理事件的API是WSAEventSelect,完全端口;
  3. Mac系统下,kqueue

2. WebRTC下的事件处理类:

  1. NullSocketServer(处理无socket的事件)(工作线程)
  2. PhysicalSocketServer(处理有socket事件)(网络线程)

事件如何协调线程工作:

信令线程--->触发事件--->公共对象(NullSocketServer或PhysicalSocketServer)(唤醒睡眠线程)--->等待事件(睡眠状态)--->工作线程/网络线程

webrtc下事件的发生:

等待线程处理逻辑:

cpp 复制代码
while(true)
{
	...
	Get(&msg, ...); // 如果没有时间,在Get()函数中睡眠等待事件
	...
	Dispatch(&msg);
	...
}

Get函数:

如果队列不为空,则取出事件后调用Dispatch处理;如果队列为空,则调用Wait等待事件发生

Wait函数:

相关推荐
桃花岛主707 小时前
如何使用WebRTC
webrtc
唯独失去了从容15 小时前
WebRTC服务器Coturn服务器的管理平台功能
运维·服务器·webrtc
唯独失去了从容2 天前
WebRTC服务器Coturn服务器中的通信协议
运维·服务器·webrtc
唯独失去了从容2 天前
WebRTC服务器Coturn服务器部署
webrtc
Stupid小池4 天前
webrtc建立连接的过程
webrtc
Paraverse平行云7 天前
如何使用UE Cesium插件实现网页端无算力负担访问?
云原生·webrtc
NodeMedia10 天前
如何用WHIP协议WebRTC推流到NodeMediaServer
webrtc·音视频开发
TSINGSEE10 天前
跨平台嵌入式音视频开发指南:EasyRTC音视频通话的多场景适配与AI扩展能力
人工智能·音视频·webrtc·智能家居
唯独失去了从容12 天前
MacOS下下载和编译webrtc步骤
webrtc
appcanLiYunLong13 天前
Webrtc让浏览器实现无服务器中转的安全私密聊天
安全·serverless·webrtc