node怎麼實現語音聊天
node實現語音聊天的方法:1、使用nodejs模組express創建一個web伺服器;2、創建https連接;3、透過「socket.io」實現客戶端與服務端即時通訊即可。
#本教學操作環境:Windows10系統、node-v16 .18.0版、DELL G3電腦
node怎麼實現語音聊天?
基於nodejs的語音聊天
描述
#程式在iamshaunjp 的群聊功能基礎上利用webRTC技術,增加了語音群聊功能,在其他人鍵盤輸入時,會出現類似微信的對方正在輸入字樣。
- demo:https://www.php.cn/link/b2fc614266ad3627dca4dc5d37885d58
- #source code: https://www.php. cn/link/12a8193db4825679dc9baf49305efe92
使用的nodejs模組
express
- ##https
:建立https連接(區域網路或外網webRTC需要https連接,具體見
tutoril) - socket.io
:客戶端與服務端即時通訊
js檔案
- #chat.js
:實作按鈕事件的註冊、文字資料的發送等
- record.js
:實現語音訊息的錄取、播放、發送等
結構圖和流程圖片
文字通訊
詳情請見public/js /chat.js註解
傳送資料
- #進入頁面進行與伺服器的
- socket
連線
客戶端輸入文字資料 - 客戶點擊
- sent
按鈕,觸發
click事件,並產生
chat事件準備想伺服器
emit - soket
連線傳送給伺服器chat事件和用戶端產生的資料
- socket
- 接受到伺服器發送來的data和伺服器發送來的chat事件
提取data文字
- js在 index. html
- 新增文字數據,完成接收數據並顯示
語音通訊
詳情請見public/js/record. js註解
- 利用 webRTC
- 取得使用者的視訊或音訊轉換為
blob
格式數據,並傳送給伺服器資料。接受訊息時,資料型別是
blob - 格式,對
blob
資料解析,利用html5的audio標籤進行播放
伺服器轉發數據客戶端發送給伺服器數據,伺服器觸發
chat事件,將客戶端發送來的數據以廣播的形式發送到每一個客戶端,完成群聊的功能。
建立https憑證在localhost中使用webRTC不需要使用https,但在區域網路或外網使用webRTC,必須強制使用webRTC,這裡採用自己產生憑證供測試使用,具體產生方法和設定https方法
參考部落格產生自己簽署的憑證(有效期限365天)openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
登入後複製
-
推薦學習:《
var fs = require('fs'), https = require('https'), express = require('express'), app = express(); https.createServer({ key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem') }, app).listen(55555); app.get('/', function (req, res) { res.header('Content-type', 'text/html'); return res.end('<h1 id="Hello-Secure-World">Hello, Secure World!</h1>'); });
登入後複製node.js影片教學
以上是node怎麼實現語音聊天的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

nvm刪除node的方法:1、下載「nvm-setup.zip」並將其安裝在C碟;2、設定環境變量,並透過「nvm -v」指令查看版本號;3、使用「nvm install」指令安裝node;4、透過「nvm uninstall」指令刪除已安裝的node即可。

怎麼處理文件上傳?以下這篇文章為大家介紹一下node專案中如何使用express來處理文件的上傳,希望對大家有幫助!

PiNetwork節點詳解及安裝指南本文將詳細介紹PiNetwork生態系統中的關鍵角色——Pi節點,並提供安裝和配置的完整步驟。 Pi節點在PiNetwork區塊鏈測試網推出後,成為眾多先鋒積極參與測試的重要環節,為即將到來的主網發布做準備。如果您還不了解PiNetwork,請參考Pi幣是什麼?上市價格多少? Pi用途、挖礦及安全性分析。什麼是PiNetwork? PiNetwork項目始於2019年,擁有其專屬加密貨幣Pi幣。該項目旨在創建一個人人可參與

這段時間在開發一個騰訊文檔全品類通用的HTML 動態服務,為了方便各品類接入的生成與部署,也順應上雲的趨勢,考慮使用Docker 的方式來固定服務內容,統一進行製品版本的管理。這篇文章就將我在服務 Docker 化的過程中累積起來的優化經驗分享出來,供大家參考。

這篇文章跟大家分享Node的進程管理工具“pm2”,聊聊為什麼需要pm2、安裝和使用pm2的方法,希望對大家有幫助!

npm node gyp失敗是因為“node-gyp.js”跟“Node.js”版本不匹配,其解決辦法:1、透過“npm cache clean -f”清除node快取;2、透過“npm install -g n”安裝n模組;3、透過「n v12.21.0」指令安裝「node v12.21.0」版本即可。

如何用pkg打包nodejs可執行檔?以下這篇文章跟大家介紹一下使用pkg將Node專案打包為執行檔的方法,希望對大家有幫助!

身份驗證是任何網路應用程式中最重要的部分之一。本教程討論基於令牌的身份驗證系統以及它們與傳統登入系統的差異。在本教程結束時,您將看到一個用Angular和Node.js編寫的完整工作演示。傳統身份驗證系統在繼續基於令牌的身份驗證系統之前,讓我們先來看看傳統的身份驗證系統。使用者在登入表單中提供使用者名稱和密碼,然後點擊登入。發出請求後,透過查詢資料庫在後端驗證使用者。如果請求有效,則使用從資料庫中獲取的使用者資訊建立會話,然後在回應頭中傳回會話訊息,以便將會話ID儲存在瀏覽器中。提供用於存取應用程式中受
