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函数:

相关推荐
Knight_AL3 天前
WebRTC / HLS / HTTP-FLV 的本质区别与选型指南
网络协议·http·webrtc
runner365.git3 天前
webrtc推流能成为直播的主要方案吗?
webrtc
XHW___0014 天前
RTP/RTCP 基本知识
webrtc·rtp/rtcp
runner365.git4 天前
语言接入大模型,websocket还是webrtc?
websocket·网络协议·webrtc
好多渔鱼好多7 天前
【流媒体协议】WebRTC 技术详解
webrtc
txp玩Linux7 天前
webrtc降噪模块NS源码解析(1)
webrtc
鲲鹏混子鱼7 天前
WebRTC P2P信令服务架构设计文档
网络协议·webrtc·p2p
平行云14 天前
实时云渲染支持数字孪生智能工厂:迈向“零原型”制造
人工智能·unity·ue5·云计算·webrtc·制造·实时云渲染
笔夏15 天前
【安卓学习之webRTC】学习相关资料
android·学习·webrtc
每日出拳老爷子15 天前
【浏览器方案】只用浏览器访问的内网会议系统设计思路(无客户端)
运维·服务器·webrtc·实时音视频·流媒体