欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务

时间:2023-08-31

本项目是一个 Web 应用,使用安全且可扩展的 WebRTC 构建,提供视频和音频通信、文件共享、屏幕共享、白板和实时 P2P 和群聊消息的实时通信。WebRTC 是一个开源框架,可在 Web 和本机应用程序中实现音频、视频和数据的实时通信。 它使用户能够通过视频和音频会议、网络研讨会、播客等与他人交流。


尽管任何 WebRTC 应用程序都使用 4 种类型的服务器:

应用程序服务器- 托管 Connect Web 应用程序!信令服务器- WebRTC 信令是指建立、控制和终止通信会话的过程。为了让两个端点开始相互交谈,必须交换三种类型的信息: 会话控制信息确定何时初始化、关闭和修改通信会话。NAT Traversal Server (STUN & TURN) - WebRTC 在连接同一本地网络中的浏览器时表现出色。但是,一旦您开始到达您的网络之外——例如,进入企业防火墙——您将需要更多的火力。如果不使用 STUN(用于 NAT 的会话遍历实用程序)或 TURN(使用围绕 NAT 的中继的遍历)协议,防火墙配置不会让 WebRTC 进入。这就是您需要 STUN/TURN 服务器的原因。媒体服务器- 媒体服务器派上用场,因为它有助于减少客户端需要发送的流的数量,通常为一个,甚至可以减少客户端需要接收的流的数量,具体取决于媒体服务器的功能。

但是目前 Connect 默认提供免费信令服务器,因此 Application Server 和 NAT Traversal Server 两台服务器即可。


一、环境依赖

由于应用程序是使用 Laravel 7 构建的,因此它需要具备 Laravel 7 的所有先决条件。 Laravel 的依赖项之一是Composer。以下是脚本的核心依赖项:

PHP >= 7.4
MySQL >= 8.0
Apache / Nginx
Node.js、npm、Composer

此外,还有一些文件和文件夹需要脚本的“写”权限。

.env 文件位于根文件夹中
storage/framework 文件夹及其子文件夹
storage/logs 文件夹及其子文件夹
bootstrap/cache 文件夹及其子文件夹
resources/lang文件夹及其子文件夹


二、基本部署

以宝塔环境为例,首先宝塔面板直接安装: PM2管理器以及对应版本的数据库、php。安装完成后重启服务器以生效:

# 1.安装宝塔yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh# 2.配置宝塔(a) 安装Fileinfo扩展 # 如果Fileinfo拓展安装失败,就是内存太小,添加swap(b) 禁用函数: proc_open、symlink、putenv、pcntl_signal、passthru(c) 创建站点

其中值得注意的是,宝塔面板默认安装MySQL 8.0要求2核4G内存,低配服务器可以通过如下方式安装MySQL 8.0:

wget http://download.bt.cn/install/0/mysql.sh;bash mysql.sh install 8.0

这样低内存服务器在宝塔面板安装Mysql8.0就实现了!

请注意:如果你已经安装了数据库,上面的命令会卸载删除当前数据库及数据,请提前备份,一定要提前备份!

# 3.安装Composercurl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer# 4.编辑环境变量:修改.env文件数据库连接内容

# 5.创建数据库、创建站点、申请ssl证书、进入域名目录拉取项目git clone https://github.com/DXJian/P2PChat.git -b master # 6.创建上传目录软链接php artisan storage:link

期间报错按照错误提示安装PHP拓展以及解除禁用函数即可,如:

# 7.设置storage目录权限为777chmod -R 0777 storage# 8.修改网站运行目录public ,取消防跨站攻击# 9.添加网站伪静态如下:

location / { try_files $uri $uri/ /index.php$is_args$query_string; }


三、线上部署

第一步检测环境是否合格,如若不合格按照不合格的选项整改即可。第二步连接数据库第三步创建管理员账户第四步要求填入访问代码,随意输入即可。

项目上线后,进入设置(config)页面,(任意)填入Pusher Credential选项中的信息。


四、建立通信

instant meeting——start a meeting——Live Class

之后的报错不需要理会,instant meeting——meeting history

此时可以看到之前创建的代码为444的聊天室





五、新用户加入

新用户通过注册页面注册成功后,需要管理员激活新用户。


六、项目展示

激动人心的实时通信:




其他可以辅助参考的信息:

codecanyon-27525559-connect-live-class-meeting-webinar-online-training-web-conferencehttps://kodemintserviceshelp.freshdesk.com/support/solutions/81000097241https://www.youtube.com/watch?v=QY_VdHvBsSI

至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。


如果您有任何疑问或者好的建议,期待你的留言、评论与关注!

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。