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

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號
精品国内在视频线2019| 性色精品视频网站在线观看| 日韩人妻无码精品久久免费一| 精品久久久久久中文字幕无码| 精品国产自在现线久久| 国产精品成熟老女人视频| 成人国内精品久久久久一区 | 九九九精品视频免费| 2018国产精华国产精品| 91精品国产一区| 亚洲精品福利网站| 国产午夜精品一二区理论影院| 国产精品亚洲精品日韩已方| 国产精品国产香蕉在线观看网| 久久精品国产久精国产思思| 无码精品黑人一区二区三区| 久久国产精品99久久小说| 久久国产乱子伦精品免费一| 久久精品国产亚洲AV麻豆不卡 | 久9视频这里只有精品| 亚洲精品视频在线播放| 亚洲欧洲国产成人精品| 人人妻久久人人澡人人爽人人精品| 国产精品无打码在线播放 | 亚洲精品无码久久久久久| 日本精品视频一视频高清| 精品久久久久成人码免费动漫| 2021最新久久久视精品爱| www.999精品视频观看免费| 亚洲av无码成人精品区一本二本| 久久精品国产72国产精| 7777精品伊人久久久大香线蕉| 久久水蜜桃亚洲av无码精品麻豆| 蜜国产精品jk白丝AV网站| 国内精品综合久久久40p| 日韩精品无码视频一区二区蜜桃 | 精品久久久久久久久午夜福利 | 久久伊人精品青青草原日本| 中文国产成人久久精品小说| 在线精品无码字幕无码AV| 日韩一区二区在线视频|