浏览器提供获取屏幕、音频等媒体数据的接口,
双方的媒体流数据通过Turn服务器传输。
前端:就一个html文件,js和css直接放里面了,纯手写,没有引入任何框架和工具
后端:Nodejs(包:express、http、ws)
WebRTC的建立借助于Turn服务器,用于交换双发的媒体协议信息等等。
但不要怕,跟着步骤走就搭建好了。
但是在win10上搭建比较繁琐,建议linux中搭建
Window 搭建Turn服务器 - 简书 (jianshu.com)
centos7 搭建turn stun 服务器_菜鸟逐梦-CSDN博客
运行turn服务器,node运行server.js完事
- [加入者] 点击加入房间
- [后端] 通知 [房主]
- [房主] 创建一个
RTCPeerConnection
实例,然后发送"_offer"到 [后端] - [后端]转发"_offer"给[加入者]
- [加入者] 创建一个
RTCPeerConnection
实例,然后反馈"_answer"到 [后端] - [后端] 转发"_answer"给 [房主]
在上述过程中,[加入者]和[房主]都会创建PC实例,创建过程即跟Turn服务器建立连接的过程,当双方都跟Turn服务器建立连接之后,Turn服务器会自动发送一个"ice_candidate"消息给[房主],发生以下过程:
- [房主] 的
RTCPeerConnection
接收来自Turn的"ice_candidate"消息,触发onicecandidate事件 - [房主] 将"ice_candidate"消息发送到 [后端]
- [后端] 转发"_ice_candidate"给 [加入者]
- [加入者] 将"_ice_candidate"信息添加到自己的
RTCPeerConnection
实例里面