首页 > 其他分享 >webrtc终极版(一)5分钟搭建多人实时会议系统webrtc

webrtc终极版(一)5分钟搭建多人实时会议系统webrtc

时间:2024-02-02 17:37:11浏览次数:24  
标签:终极版 demo RTCMultiConnection connection true webrtc 搭建

webrtc终极版(一),支持https,在线部署【不是本地demo】,采用RTCMultiConnection官方demo,5分钟即可搭建成功


@

目录


前言

webrtc现在简直是太火了,几乎涵盖了我们行业的方方面面,他的诱人之处在于,他是p2p通信,几乎不怎么耗费服务器流量
本文是webrtc系列的第一篇,您没看错,就是5分钟即可搭建成功,多一分钟算我输,如果您的要求比较低,甚至可以将这个直接使用起来,但是我强烈建议您不要这样做
能研究到webrtc的,一般不会是刚入门的小菜鸟,起码是技术骨干级别,所以我强烈建议您完成整个系列文章的阅读,再这个系列文章里我们将会学到以下内容

第一篇:采用RTCMultiConnection官方demo,5分钟搭建起来webrtc

第二篇:搭建自己的iceserver服务器,并用到RTCMultiConnection的demo中

第三篇:将官方RTCMultiConnection的demo部署到自己的服务器中

第四篇:如果不用第三方RTCMultiConnection,裸写一个怎么样


我们做事情,比方说webrtc这样的事情,领导可能再催着我们,再等着看效果,所以,如果我们上来就慢慢研究原理,可能两三天过去了,也没有搞定,这样我们心里就会发慌,工作内容总不能一直写研究webrtc吧,所以上来先完成一个demo,并能正常运行,就显得非常重要了。

一、webrtc是什么?

能看到这篇文章的,相信几乎没有不知道什么是webrtc的了,但是作为文章的重要组成部分,还是需要介绍下什么是webrtc。

它(WebRTC)允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输

这是 MDN 上对 WebRTC 的描述,初次接触时无法理解 WebRTC 为什么要和 WebSocket 搭配,明明说的很清楚 不借助中间媒介 ,那 WebSocket 充当的是什么角色?整个 WebRTC 通话建立的流程又是怎样的?

上面的问题是个大的话题,原理介绍我准备放到第四篇章进行,本篇文章,我们就只有一个目的,那就是5分钟搭建一个webrtc,enjoy it!

二、搭建demo步骤

1.代码内容

啥都不说了,直接上代码:

<!DOCTYPETYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Video Conference</title>
</head>
<body>
<button id="btn-open-room">Open Room</button>
<button id="btn-join-room">Join Room</button>
  <!-- Include RTCMultiConnectionClient.js -->
<script src="https://muazkhan.com:9001/dist/RTCMultiConnection.min.js"></script>
<script src="https://muazkhan.com:9001/socket.io/socket.io.js"></script>
<script>
var connection = new RTCMultiConnection();

// this line is VERY_important
connection.socketURL = 'https://muazkhan.com:9001/';

// all below lines are optional; however recommended.

connection.session = {
    audio: true,
    video: true
};

connection.sdpConstraints.mandatory = {
    OfferToReceiveAudio: true,
    OfferToReceiveVideo: true
};

connection.onstream = function(event) {
    debugger;
    document.body.appendChild( event.mediaElement );
};


var predefinedRoomId = 'testroom';

// first step, ignore default STUN+TURN servers
connection.iceServers = [];
connection.iceServers.push({
    urls: 'stun:muazkhan.com:3478',
    credential: 'muazkh',
    username: 'hkzaum'
});
connection.iceServers.push({
    urls: 'turns:muazkhan.com:5349',
    credential: 'muazkh',
    username: 'hkzaum'
});
connection.iceServers.push({
    urls: 'turn:muazkhan.com:3478',
    credential: 'muazkh',
    username: 'hkzaum'
});

document.getElementById('btn-open-room').onclick = function() {
    this.disabled = true;
    connection.open( predefinedRoomId );
};

document.getElementById('btn-join-room').onclick = function() {
    this.disabled = true;
    connection.join( predefinedRoomId );
};
</script>
</body>
</html>

2.运行效果

第一个界面:运行页面后的初始界面
初始界面

第二个界面,点击open room,并同意音视频采集请求
点击open room按钮

第三个界面:点击jon room按钮的效果
点击join room按钮

第四个界面:多人点击join room按钮的效果
多人点击join room按钮

总结

以上html,您可以再本地直接打开运行,本地打开,那就只能内网测试了,同时,您也可以把这个html放到公网上,注意是必须https,否则浏览器会阻止音视频的打开

本文是webrtc的开篇,是不是感觉非常的轻松,并且对webrtc充满信心了呢?这个第三方的组件,是支持多人音视频聊天的,非常的强大,后续几篇我们会深入讨论。

同时也欢迎您关注爱自律官方微信公众号,同时体验爱自律小程序的使用,让我们一起爱上自律,拥抱自由吧。

标签:终极版,demo,RTCMultiConnection,connection,true,webrtc,搭建
From: https://www.cnblogs.com/wjcnet/p/18003533

相关文章

  • Linux运维笔记[14]-搭建内网docker镜像服务
    摘要使用docker-registry搭建内网镜像服务,平替DockerHub.原理简介docker-registry简介[https://juejin.cn/post/7214037206863495205]官方提供了DockerHub网站来作为一个公开的集中仓库,然而,本地访问DockerHub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内......
  • ganache搭建私有测试节点
    1.Ganche简介1.1.什么是Ganache?Ganache是DApp的测试网络,提供图形化界面,log日志等;智能合约部署时需要连接测试网络。Ganache是一个运行在本地测试的网络,通过结合cpolar内网穿透软件,即可比较简单实现远程或者不同局域网进行连接访问,下面简单概括设置和连接方法1.2.环境......
  • Docker搭建私有仓库、查看私有仓库镜像
    Docker搭建私有仓库、查看私有仓库镜像:https://blog.csdn.net/weixin_42551369/article/details/88946361?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170684269116777224444425%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=17068......
  • 达梦实时主备集群搭建
    达梦实时主备集群搭建达梦镜像文件下载地址https://eco.dameng.com/download/一、前期准备工作需要准备至少三台服务器,一台部署主库,一台部署确认监视器,备库最少一台,最多可部署8台以下为主库和备库配置信息(IP地址和实例名等配置信息根据实际情况进行修改,心跳IP为内网网卡,可......
  • Windows平台下Unity-ROS环境搭建
    最近在做AI+机器人的课程项目,因为平常用Unity比较多,所以就想着把Unity和ROS结合起来使用。上Github上面一查发现官方是有做适配的。虽然已经有一段时间没有更新了,但也还能用。搭建的步骤和在搭建过程中遇到的一些问题,在这里记录一下。ROS-Unity介绍ROS-Unity就是在原本独立的ROS......
  • MCAL开发环境搭建
    本文是基于NXP-S32K1XX平台1.MCAL开发流程图配置工具:EBtreosstudio:生成MCAL配置代码EBClientLicenseAdministrator:激活EBtresosstudio芯片MCAL开发包:S32K1XX_sMCAL_4.2_RTM_1.0.6MCAL驱动代码--静态代码配置文件(用于EBtresosstudio生成配置界面)--动态代码......
  • 幻兽帕鲁专用服务器搭建教程分享(手把手教学)
    想要快速搭建幻兽帕鲁服务器,我们只需要参考以下教程即可轻易完成幻兽帕鲁服务器的搭建部署,与其他专用服务器游戏一样,可以让您和朋友在一个相对独立、稳定且私密的云端跨境中进行游戏,以获得更好、更流畅的游戏体验。幻兽帕鲁游戏和steam平台作为国外服务,使用大陆服务器会有......
  • 借助可视化表单搭建企业级低代码平台,实现流程化办公!
    实现高效率的流程化办公,利用低代码技术平台可以为企业带来高效益的办公目的。可视化表单是较为流行的办公利器,流辰信息经验足、产品丰富、服务品质好,可以为更多的企业搭建专属于企业的低代码技术平台,创造高效益的办公。1、低代码技术平台的市场价值什么是低代码平台?它究竟有什么......
  • 搭建高效企业培训平台:教育系统源码开发详解
    为了更好地满足企业培训的需求,许多组织纷纷转向数字化教育,搭建高效的企业培训平台成为当务之急。本篇文章,小编将为您讲解教育系统源码的开发细节,为搭建一个功能强大、灵活高效的企业培训平台提供详尽的指南。 一、教育系统的基础架构1.1数据库设计众所周知,数据库设计是整个平台的......
  • 从零搭建Vue3 + Typescript + Pinia + Vite + Tailwind CSS + Element Plus开发脚手架
    项目代码以上传至码云,项目地址:https://gitee.com/breezefaith/vue-ts-scaffold目录前言脚手架技术栈简介vue3TypeScriptPiniaTailwindCSSElementPlusvite详细步骤Node.js安装创建以typescript开发的vue3工程集成Pinia安装pinia修改main.ts创建一个store在组件中使用store集......