基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务
本項(xiàng)目是一個(gè) Web 應(yīng)用,使用安全且可擴(kuò)展的 WebRTC 構(gòu)建,提供視頻和音頻通信、文件共享、屏幕共享、白板和實(shí)時(shí) P2P 和群聊消息的實(shí)時(shí)通信。WebRTC 是一個(gè)開源框架,可在 Web 和本機(jī)應(yīng)用程序中實(shí)現(xiàn)音頻、視頻和數(shù)據(jù)的實(shí)時(shí)通信。 它使用戶能夠通過視頻和音頻會(huì)議、網(wǎng)絡(luò)研討會(huì)、播客等與他人交流。
盡管任何 WebRTC 應(yīng)用程序都使用 4 種類型的服務(wù)器:
但是目前 Connect 默認(rèn)提供免費(fèi)信令服務(wù)器,因此 Application Server 和 NAT Traversal Server 兩臺(tái)服務(wù)器即可。
一、環(huán)境依賴
由于應(yīng)用程序是使用 Laravel 7 構(gòu)建的,因此它需要具備 Laravel 7 的所有先決條件。 Laravel 的依賴項(xiàng)之一是Composer。以下是腳本的核心依賴項(xiàng):
PHP >= 7.4
MySQL >= 8.0
Apache / Nginx
Node.js、npm、Composer
此外,還有一些文件和文件夾需要腳本的“寫”權(quán)限。
.env 文件位于根文件夾中
storage/framework 文件夾及其子文件夾
storage/logs 文件夾及其子文件夾
bootstrap/cache 文件夾及其子文件夾
resources/lang文件夾及其子文件夾
二、基本部署
以寶塔環(huán)境為例,首先寶塔面板直接安裝: PM2管理器以及對(duì)應(yīng)版本的數(shù)據(jù)庫(kù)、php。安裝完成后重啟服務(wù)器以生效:
# 1.安裝寶塔 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh# 2.配置寶塔 (a) 安裝Fileinfo擴(kuò)展 # 如果Fileinfo拓展安裝失敗,就是內(nèi)存太小,添加swap (b) 禁用函數(shù): proc_open、symlink、putenv、pcntl_signal、passthru (c) 創(chuàng)建站點(diǎn)其中值得注意的是,寶塔面板默認(rèn)安裝MySQL 8.0要求2核4G內(nèi)存,低配服務(wù)器可以通過如下方式安裝MySQL 8.0:
wget http://download.bt.cn/install/0/mysql.sh; bash mysql.sh install 8.0這樣低內(nèi)存服務(wù)器在寶塔面板安裝Mysql8.0就實(shí)現(xiàn)了!
請(qǐng)注意:如果你已經(jīng)安裝了數(shù)據(jù)庫(kù),上面的命令會(huì)卸載刪除當(dāng)前數(shù)據(jù)庫(kù)及數(shù)據(jù),請(qǐng)?zhí)崆皞浞?#xff0c;一定要提前備份!
# 3.安裝Composer curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer# 4.編輯環(huán)境變量:修改.env文件數(shù)據(jù)庫(kù)連接內(nèi)容 # 5.創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建站點(diǎn)、申請(qǐng)ssl證書、進(jìn)入域名目錄拉取項(xiàng)目 git clone https://github.com/DXJian/P2PChat.git -b master # 6.創(chuàng)建上傳目錄軟鏈接 php artisan storage:link期間報(bào)錯(cuò)按照錯(cuò)誤提示安裝PHP拓展以及解除禁用函數(shù)即可,如:
# 7.設(shè)置storage目錄權(quán)限為777 chmod -R 0777 storage# 8.修改網(wǎng)站運(yùn)行目錄public ,取消防跨站攻擊# 9.添加網(wǎng)站偽靜態(tài)如下: location / { try_files $uri $uri/ /index.php$is_args$query_string; }三、線上部署
- 第一步檢測(cè)環(huán)境是否合格,如若不合格按照不合格的選項(xiàng)整改即可。
- 第二步連接數(shù)據(jù)庫(kù)
- 第三步創(chuàng)建管理員賬戶
- 第四步要求填入訪問代碼,隨意輸入即可。
項(xiàng)目上線后,進(jìn)入設(shè)置(config)頁(yè)面,(任意)填入Pusher Credential選項(xiàng)中的信息。
四、建立通信
instant meeting——start a meeting——Live Class
之后的報(bào)錯(cuò)不需要理會(huì),instant meeting——meeting history
此時(shí)可以看到之前創(chuàng)建的代碼為444的聊天室
五、新用戶加入
新用戶通過注冊(cè)頁(yè)面注冊(cè)成功后,需要管理員激活新用戶。
六、項(xiàng)目展示
激動(dòng)人心的實(shí)時(shí)通信:
其他可以輔助參考的信息:
至此,本文也就進(jìn)入尾聲了。希望本文能夠起到拋磚引玉之效,也歡迎大家的批評(píng)交流。
如果您有任何疑問或者好的建議,期待你的留言、評(píng)論與關(guān)注!
總結(jié)
以上是生活随笔為你收集整理的基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP_CodeIgniter _rem
- 下一篇: Runtime使用单例模式,饿汉式