WebRTCの概要
8492 ワード
定義#テイギ#
Webリアルタイム通信(Web Real-time Communication)は、Webアプリケーションおよびサイトがオーディオおよび/またはビデオメディアをキャプチャし、仲介者を必要とせずにブラウザ間で任意の数のデータを交換できるように選択的にストリーミング処理を行うことを可能にする技術である.
peer-to-peer
インターネットに接続された多くの個別ユーザーが仲介機関を経由せずに直接データを交換することを指す.
(出典:https://m.blog.naver.com/pcmola/222092887306)
Signaling
2つのデバイス間でWebRTC接続を確立するには、インターネットネットワーク上で接続するためのシグナリングサーバが必要です.
まず、信号サーバ自体が必要です.WebRTCは、シグナリング情報の伝送メカニズムを提供しない.ハリー・ポッターのフクロウのように2つの対等体の間で信号に関する情報を伝えることができれば、WebSocketでもXMLHttpRequestでも.
文書:https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API
ルーム(部屋を作成+部屋に入る)
app.js
// 화상화면이 나오는 div
const call = document.getElementById("call");
// 방 이름 input + 입장하기 버튼 form 담긴 div
const welcome = document.getElementById("welcome");
// 방 이름 input + 입장하기 버튼 form
const welcomeForm = welcome.querySelector("form");
let roomName;
function handleWelcomeSubmit(event) {
event.preventDefault();
const input = welcomeForm.querySelector("input");
// 서버로 join_room 메세지 타입으로 room name과 end 함수보냄
socke.emit("join_room", input.value, startMedia);
roomName = input.value;
input.value = "";
}
// 방 입장 div 숨기고 화상화면 보여줌
await function startMedia() {
welcome.hidden = true;
call.hidden = false;
await getMedia();
}
welcomeForm.addEventListener("submit", handleWelcomeSubmit);
// Socket Code
// 다른 사용자가 입장하면 원래 있던 사용자에게 알림이 감
socket.on("welcome", () => {
console.log("somebody joined");
})
server.js
wsServer.on("connection", (socket) => {
// "join_room" 메세지 이벤트
socket.on("join_room", (roomName, done) => {
// roomName 에 접속
socket.join(roomName);
// done 함수 실행 (startMedia)
done();
// 다른 사용자가 연결되었을 때 roomName 으로 "welcome" 메세지 보내기
socket.to(roomName).emit("welcome");
});
));
Reference
この問題について(WebRTCの概要), 我々は、より多くの情報をここで見つけました https://velog.io/@leeyw2709/WebRTC-개요テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol