基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务
本項目是一個 Web 應用,使用安全且可擴展的 WebRTC 構建,提供視頻和音頻通信、文件共享、屏幕共享、白板和實時 P2P 和群聊消息的實時通信。WebRTC 是一個開源框架,可在 Web 和本機應用程序中實現音頻、視頻和數據的實時通信。 它使用戶能夠通過視頻和音頻會議、網絡研討會、播客等與他人交流。
盡管任何 WebRTC 應用程序都使用 4 種類型的服務器:
但是目前 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.安裝Composer curl -sS https://getcomposer.org/installer | php mv 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目錄權限為777 chmod -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的聊天室
五、新用戶加入
新用戶通過注冊頁面注冊成功后,需要管理員激活新用戶。
六、項目展示
激動人心的實時通信:
其他可以輔助參考的信息:
至此,本文也就進入尾聲了。希望本文能夠起到拋磚引玉之效,也歡迎大家的批評交流。
如果您有任何疑問或者好的建議,期待你的留言、評論與關注!
總結
以上是生活随笔為你收集整理的基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP_CodeIgniter _rem
- 下一篇: Runtime使用单例模式,饿汉式