str2num / libice

libice是一个c/c++库,它实现了RFC5245规范定义的交互式连接建立(ICE)协议, 适用于实时通信领域,比如音视频实时通信。
BSD 3-Clause "New" or "Revised" License
115 stars 48 forks source link

webrtc epoll问题 #7

Open wangbing8895 opened 3 years ago

wangbing8895 commented 3 years ago

嗨,您好!现在新的webrtc版本支持了 epoll,应该不用自己添加 epoll了

str2num commented 3 years ago

ok, 有空我看看,支持单线程异步吗?还是1个线程1个ice通道?

wangbing8895 commented 3 years ago

这个还要细看,对了,请教一下,你这个不支持 ice relay吗?

str2num commented 3 years ago

这个库的定位是在服务端使用的,一般服务端对外服务都有公网ip,可以不用relay,为了简化,relay给去掉了。

wangbing8895 commented 3 years ago

哦哦,我是看中了 webrtc的ICE支持域名解析,并且代码比 libnice好看懂;如果单纯的用在服务端并且不考虑 relay,可以自己手写一个 Stun的解析,比如 MediaSoup项目就是自己解析 StunMessage,可参考

str2num commented 3 years ago

嗯,stun解析只是一小部分,主要是ice建立的流程以及高性能的高并发ice通道的管理。webrtc一个线程管理一个ice通道,不太适用服务端,这个库对网络IO模型做了改造,通过引入高性能异步网络库,来实现单个线程可以管理大量的ice通道,最终实现服务端高性能的媒体流的分发。

wangbing8895 commented 3 years ago

嗨,您能简要说说 您的高并发 体现在代码哪里呢?想跟您学习一下