android webrtc 多人网状P2P视频聊天
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android webrtc 多人网状P2P视频聊天相关的知识,希望对你有一定的参考价值。
参考技术A 什么是网状P2P?假设3个人视频会议,每个人都要同时接收2路流,上传两路流。每个客户端要创建多个(N-1个)PeerConnection ,同时和多个人建立 P2P 连接。多人P2P跟两人P2P通信的唯一区别就是要创建多个 PeerConnection ,也很简单。
比较复杂的地方其实是聊天室信令的设计与实现,客户端还比较简单。网状P2P服务器压力很小,服务端只有信令不涉及流的处理,客户端压力较大,因为要同时处理多路流。
默认定义一个房间
首先所有用户还是先注册自己到服务端
定义一个加入房间的信令
相应的定义一个离开房间的信令
sdp, trickle 等信令消息的转发不用动,直接根据接收者ID转发就行
3个手机依次安装3个用户,依次加入房间,很简单实现了多人P2P通信。
假设领导要你搞一个10人以内的视频会议,网状P2P其实挺合适,做一个完善一点的房间管理服务,客户端再优化完善一下,一到两周搞定。
人再多的话网状就不太适合了,就得 SFU 或 MCU 了,得架设一个 webrtc 网关了,且听下回分解。
客户端源码参考: https://github.com/lesliebeijing/WebRtcDemo 里面的VideoRoomActivity
signalserver: 参考 https://github.com/lesliebeijing/WebrtcSignalingDemo/tree/branch_videoroom
以上是关于android webrtc 多人网状P2P视频聊天的主要内容,如果未能解决你的问题,请参考以下文章
Android WebRTC 入门教程 -- 模拟p2p本地视频传输
Android WebRTC 入门教程 -- 模拟p2p本地视频传输