站長資訊網
        最全最豐富的資訊網站

        node怎么實現語音聊天

        node實現語音聊天的方法:1、使用nodejs模塊express創建一個web服務器;2、創建https連接;3、通過“socket.io”實現客戶端與服務端實時通信即可。

        node怎么實現語音聊天

        本教程操作環境:Windows10系統、node-v16.18.0版、DELL G3電腦

        node怎么實現語音聊天?

        基于nodejs的語音聊天

        node怎么實現語音聊天

        描述

        程序在 iamshaunjp 的群聊功能基礎上利用webRTC技術,添加了語音群聊功能,在其他人鍵盤輸入時,會出現類似微信的對方正在輸入字樣。

        • demo:https://www.php.cn/link/b2fc614266ad3627dca4dc5d37885d58
        • source code: https://www.php.cn/link/12a8193db4825679dc9baf49305efe92

        使用的nodejs模塊

        • express:創建一個web服務器
        • https:創建https連接(局域網或者外網webRTC需要https連接,具體見tutoril)
        • socket.io:客戶端與服務端實時通信

        js文件

        • chat.js:實現按鈕事件的注冊、文本數據的發送等
        • record.js:實現語音消息的錄取、播放、發送等

        結構圖和流程圖

        node怎么實現語音聊天

        node怎么實現語音聊天

        文本通信

        詳情見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
        登錄后復制

        • 使用https連接的express,例子如下:

          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>Hello, Secure World!</h1>');     });
        登錄后復制

        推薦學習:《node.js視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品久久久久久国产三级 | 午夜亚洲av永久无码精品| 少妇伦子伦精品无码STYLES| 国产产无码乱码精品久久鸭| 久久精品国产精品亚洲艾草网美妙| 国产亚洲欧美精品永久| 亚洲国产av无码精品| 国产午夜精品理论片免费观看| 99久久精品费精品国产一区二区 | 午夜精品视频在线| 久久亚洲精品中文字幕| 色婷婷噜噜久久国产精品12p| 国产精品电影在线| 日本精品卡一卡2卡3卡四卡| 国产精品v片在线观看不卡| 最新精品亚洲成a人在线观看| 精品无码国产污污污免费网站国产 | 国产伦精品一区二区三区视频金莲 | 91精品无码久久久久久五月天| 91精品成人免费国产| 亚洲av成人无码久久精品| 伊人 久久 精品| 欧美日韩专区麻豆精品在线| 久久93精品国产91久久综合| 国产精品第一页在线| 国产vA免费精品高清在线观看| 欧美+亚洲+精品+三区| 91麻豆精品国产| 国产精品无套内射迪丽热巴| 国产精品丝袜黑色高跟鞋| 无码囯产精品一区二区免费| 四虎国产精品永久在线观看 | 亚洲人成亚洲精品| 久久99精品国产| 久久国产精品99久久久久久老狼| 凹凸69堂国产成人精品视频| 2022国产精品不卡a| 国产精品国产精品国产专区不卡| 国产99视频精品免费专区| 97久久久精品综合88久久| 91精品欧美综合在线观看|