- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我新写了一个简单的聊天应用程序,但我不太了解ICE Candidates的背景。
当对等方创建连接时,他们会获得 ICE 候选者,并交换它们并设置他们最终到达对等连接。
所以我的问题是,ICE 候选者从哪里来,如何使用它们以及它们是否都被真正使用了?
我注意到我的同事在他的机器上执行应用程序时获得的候选数较少,候选数不同的原因可能是什么?
最佳答案
@Ichigo 的答案是正确的,但它有点大。每个 ICE 都包含网络的“一个节点”,直到它到达外部。通过这种方式,您可以将这些 ICE 发送给其他对等方,以便他们知道可以通过哪些连接点联系到您。
将其视为一栋大楼:一个人在大楼内,需要告诉另一个人(不熟悉的人)如何穿过它。同样,如果我有很多网络设备,传入连接以某种方式需要找到通往我的计算机的正确路径。
通过提供所有节点,RTC 连接自行找到最短路径。因此,当您连接到您旁边的计算机(该计算机连接到同一路由器/交换机/其他设备)时,它会使用所有 ICE 并确定最短的,并且直接通过该点。您的同事获得的 ICE 候选者数量较少,这与它必须通过的设备数量有关。
请注意,您计算机内的每个网络适配器都有一个 IP 地址(我有一个来自 hyper-v 的 vEthernet 交换机),它还会为其创建一个 ICE。
关于webrtc - 什么是 ICE Candidates?对等连接如何在它们之间进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21069983/
我正在使用 AutoComplete API Material UI。有一个 的对象top100电影其中包含电影的标题和年份。如果我使用 top100Film.title 搜索,我的自动完成工作正常如
我试图显示位于拉特兰县,只有得票高于 0。现在,它仅显示拉特兰县的所有投票。 https://jsfiddle.net/jeffd/yqbwaxts/3/ https://99centbeats.co
const pc1 = new RTCPeerConnection(null); const pc2 = new RTCPeerConnection(null); async function cal
当我尝试运行我的游戏时,我目前遇到以下错误的问题。我试图理解以下错误的含义,但我发现很难理解。我相信有不止一个错误,但我不知道去哪里找。我很想得到你的帮助! [armeabi] Compile++ t
我正在写一个自定义键盘,我想使用候选人。但是候选 View 设置为一定高度,这对我的需要来说太小了。我似乎无法设置候选人的高度。如果我将高度设置为 certine dp,我会得到半黑屏。 谢谢! 最佳
您好,我希望得到一些安装 rubygems 的帮助。这就是我尝试时发生的情况。 “ruby-full”已经安装。我该如何解决?这是什么问题? $ sudo apt-get install ruby
我新写了一个简单的聊天应用程序,但我不太了解ICE Candidates的背景。 当对等方创建连接时,他们会获得 ICE 候选者,并交换它们并设置他们最终到达对等连接。 所以我的问题是,ICE 候选者
按照此tutorial (对于初学者) 我创建了提供者和应答者,我使用了 onicecandidate() function onicecandidate(event) { if (!p
#include #include #include #include using namespace std; struct Node1 { unsigned int vertex;
在 CEF3 中与 WebRTC 应用程序通话期间,出现以下错误。我做了很多分析但无法弄清楚这个问题的原因/解决方案..请提出问题所在以及解决方案。 1448447657717 - WebRtcAda
我正在使用 huggingface transformers 库开发法语问答模型。我使用的是预训练的 CamemBERT 模型,它与 RoBERTa 非常相似,但适用于法语。 目前,我能够使用 tra
我正在尝试在 ubuntu 中安装 nodejs,我需要使用 curl 但它不允许我安装 curl每次我尝试安装它时都会显示此错误 正在读取包列表...完成构建依赖树 正在读取状态信息...完成包 c
我在浏览器控制台中遇到的错误(仅出现在 Chrome 中,Firefox 中没有错误)是错误:无法在“RTCPeerConnection”上执行“addIceCandidate”:无法添加 ICE 候
概述 我正在尝试将 lambda 传递给采用模板函数类型的模板函数。编译时出现错误 candidate template ignored: could not match... . 但是,当我尝试将相
我正在尝试发送地址 this issue ,实际上是由 this other stackoverflow question 提出的与callwith的不同行为有关和 samewith 。后者似乎定义得
我正在做一个投票系统,希望投票系统循环直到用户输入0,然后输出获胜的候选人 两个类 package javaexamcode; import java.util.Scanner; pub
我安装了 Ubuntu 16.04 LTS(Xenial 版本)。我需要将 mpich2 软件包安装到我的系统上,但是当我运行 sudo apt-get install mpich2 时,出现以下错误
正如我的 Chrome 开发人员工具所指出的,什么是第一个有意义的绘画 (FMP) 候选者?这与第一个有意义的油漆有什么不同? 如您所见,黄线是 FMP,前两个标记为“候选人”,最后一个只是 FMP。
请注意,我已阅读并将答案应用于:Calling C++ member function from Luabind causes "No matching overload found" ,但这并没有解
上下文:我正在尝试设置 mysql 复制,一主一从。我在 mysql 5.6 中使用新的 GTID 方法,以及用于自动故障转移的 mysql 实用程序。 我能够设置主节点 M 和从节点 S 的复制。
我是一名优秀的程序员,十分优秀!