gpt4 book ai didi

javascript - 关于webrtc中使用socket,io进行socket连接

转载 作者:行者123 更新时间:2023-12-03 01:49:12 24 4
gpt4 key购买 nike

我正在研究点对点视频聊天,我遵循谷歌Codelab进行研究。我刚刚从html 5 Rocks网站上阅读了有关webrtc的理论部分,所以我对套接字连接的编码部分不太了解.

代码实验室的链接是 https://codelabs.developers.google.com/codelabs/webrtc-web/#2请访问步骤05。

我不明白“main.js”文件中的以下部分。

socket.on('message', function(message) {
console.log('Client received message:', message);
if (message === 'got user media') {
maybeStart();
} else if (message.type === 'offer') {
if (!isInitiator && !isStarted) {
maybeStart();
}
pc.setRemoteDescription(new RTCSessionDescription(message));
doAnswer();
} else if (message.type === 'answer' && isStarted) {
pc.setRemoteDescription(new RTCSessionDescription(message));
} else if (message.type === 'candidate' && isStarted) {
var candidate = new RTCIceCandidate({
sdpMLineIndex: message.label,
candidate: message.candidate
});
pc.addIceCandidate(candidate);
} else if (message === 'bye' && isStarted) {
handleRemoteHangup();
}
});

所以我的问题是

1)什么是message.type === 'offer',什么是offer,它是什么类型的字符串? “答案”和“候选人”也是如此。

您能给我介绍一下这段代码到底是如何工作的吗?

最佳答案

WebRTC 使用信令来创建连接。信令基本上是通过 websocket 在对等点之间来回发送的消息。您可以使用像 sockets.io 这样的东西来实现这一点。

信令有助于建立并维护连接。信令来回发送 session 描述协议(protocol)信息。

用于建立连接的信令或套接字消息由提议和应答组成。

看起来像这样:

  • 参与者 1 (P1) 加入并让人们知道他们在那里套接字
  • 参与者 2 (P2) 通过套接字发送报价进行响应
  • P1 收到报价并将 P2 的详细信息存储为远程描述
  • P1 发回包含其详细信息的答案 P2 收到此答案回答并将 P1 的详细信息存储为远程描述
  • 已连接!

该信息称为 session 描述协议(protocol)(SDP)。它包含以下信息:

  • 多媒体类型(音频、视频、屏幕共享)
  • 媒体能力
  • 交通地址
  • 元数据

如果您有兴趣,我的博客上有详细的解释。

https://blog.videorooms.io/2018/05/mesh-architecture.html

套接字只是在试图相互连接的两个人之间来回发送 JSON。

希望有帮助。

关于javascript - 关于webrtc中使用socket,io进行socket连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50493175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com