노드에서 음성 채팅을 구현하는 방법: 1. nodejs 모듈 익스프레스를 사용하여 웹 서버를 만듭니다. 2. https 연결을 만듭니다. 3. "socket.io"를 통해 클라이언트와 서버 간의 실시간 통신을 수행합니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, node-v16.18.0 버전, DELL G3 컴퓨터
노드는 어떻게 음성 채팅을 구현하나요?
nodejs 기반 음성 채팅
이 프로그램은 iamshaunjp의 그룹 채팅 기능을 기반으로 webRTC 기술을 사용하며 다른 사람이 키보드를 쳤을 때 음성 그룹 채팅 기능을 추가합니다. , 상대방이 입력하는 위치에 WeChat과 유사한 메시지가 나타납니다.
사용된 nodejs 모듈
express
: 웹 서버 만들기 express
:创建一个web服务器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事件index.html
添加文本数据,完成接收数据并显示详情见public/js/record.js
注释
webRTC
获取到用户的视频或者音频转换为blob
格式数据,并发送给服务器数据。blob
格式,对blob
数据解析,利用html5的audio标签进行播放客户端发送给服务器数据,服务器触发chat
https
: https 연결 만들기(LAN 또는 외부 webRTC에는 https 연결이 필요합니다. 자세한 내용은 tutorilsocket.io
: 클라이언트와 서버 간의 실시간 통신 chat.js
: 버튼 이벤트 등록, 문자 데이터 전송 등을 구현합니다. record.js
: 음성 메시지 녹음, 재생, 전송 등을 구현합니다. public/js/chat.js
Annotation🎜🎜🎜🎜Send data🎜🎜🎜🎜페이지를 입력하세요. 서버 소켓
연결과 통신합니다. 🎜🎜클라이언트가 텍스트 데이터를 입력합니다🎜🎜고객이 전송
버튼을 클릭하고 클릭
이벤트를 트리거하고 생성합니다. 서버emit
🎜🎜soket
를 준비하기 위한 chat
이벤트 연결은 서버에 채팅 이벤트와 클라이언트에서 생성된 데이터를 보냅니다🎜🎜 🎜🎜데이터 수신🎜🎜🎜🎜소켓
서버로 수신 및 전송 들어오는 데이터와 서버에서 보낸 채팅 이벤트🎜🎜데이터 추출 text🎜🎜js는 인덱스에 텍스트 데이터를 추가합니다. .html
, 데이터 수신 및 표시 완료🎜🎜🎜🎜 음성 통신🎜🎜🎜자세한 내용은 public/js/record.js
댓글을 참조하세요🎜 🎜🎜🎜음성 데이터를 받아 보내는 것은 문자 데이터 통신과 유사합니다🎜🎜webRTC
를 사용하여 획득 사용자의 비디오 또는 오디오를 blob
형식의 데이터로 변환하여 서버로 전송합니다. . 🎜🎜메시지 수신 시 데이터 유형은 blob
형식입니다. blob
데이터는 html5🎜🎜🎜🎜 서버는 데이터를 전달합니다🎜🎜클라이언트는 서버에 데이터를 보내고, 서버는 chat
이벤트를 발생시켜 클라이언트가 보낸 데이터를 브로드캐스트 형태로 각 클라이언트에게 보내서 채팅을 완료합니다. 그룹 채팅 기능. 🎜🎜🎜🎜https 인증서 만들기🎜🎜localhost에서 webRTC를 사용하는 경우에는 https를 사용할 필요가 없지만, LAN이나 외부 네트워크에서 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>Hello, Secure World!</h1>'); });
위 내용은 노드에서 음성 채팅을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!