在对我的网络应用程序进行故障排除时,我发现了Draft-mdns-ice-candidates,它是关于使用 mDNS 来混淆候选主机中的地址。
\n我发现,当两个对等点(代理 L、代理 R)处于如下图 7 所示的拓扑时,WebRTC 对等点连接失败,因为代理 R 的主机地址被混淆,并且代理 R 的 srflx 地址被丢弃,因为代理 R 不在 NAT 后面。rfc8445中的相关表述如下。
\n\n\n5.1.3. 消除多余的候选人
\n
\n\n接下来,ICE 代理(发起和响应)消除冗余\n候选者。两个候选者可以具有相同的传输地址,但\n不同的基数,并且这些不会被视为冗余。\n当代理不在 NAT 之后时,\n通常,服务器自反候选者和主机候选者\n将是冗余的。当且仅当一个候选者的传输地址和基址等于另一个候选者的传输地址和基址时,\n该候选者才是冗余的。代理应该消除具有较低优先级的冗余候选。- rfc8445 第 5.1.3 节
\n
\n\n\n
\n\n(图7来自rfc8445的15.1节)
\n
在Draft-mdns-ice-candidates 的第 5 节中,我没有找到有关图 7 的情况的解释。当我测试最新版本的 Chrome、Firefox 和 Safari 时,WebRTC 对等连接在所有浏览器中均失败在图7的情况下,由于我上面写的\xe2\x80\x94的原因,代理R的主机地址被混淆,并且代理R的srflx地址被丢弃。
\n通过更改浏览器设置关闭本地地址混淆(默认情况下进行混淆)时,WebRTC 对等连接已成功建立。(我在 Chrome 和 FireFox 上测试了此成功连接。在 Chrome 中,通过Anonymize local IPs exposed by WebRTC …
我在我的 Github 页面上使用 Google Analytics Global Site Tag (gtag.js) 跟踪代码。以下跟踪代码作为第一项复制并粘贴到<HEAD>我要跟踪的每个网页中(我用 替换了我自己的跟踪 ID GA_MEASUREMENT_ID):
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
</script>
Run Code Online (Sandbox Code Playgroud)
最近,当我使用 Firefox 浏览器打开我的 Github Pages 站点时,控制台会记录以下警告消息:
Cookie “_ga” will be soon rejected because it has the “sameSite” attribute set to “none” or an invalid value, without the “secure” attribute. To know more about the “sameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite …
我有一个数组,给定一组中的项目数和组数,我需要在循环中循环打印该数组。数组-[1,2,3,4,5,6] 组- 4 次迭代- 7
输出应该是:
['1', '2', '3', '4']
['5', '6', '1', '2']
['3', '4', '5', '6']
['1', '2', '3', '4']
['5', '6', '1', '2']
['3', '4', '5', '6']
['1', '2', '3', '4']
Run Code Online (Sandbox Code Playgroud)