metaRTC新版本重构ICE全面兼容ICE协议

这篇具有很好参考价值的文章主要介绍了metaRTC新版本重构ICE全面兼容ICE协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

metaRTC支持P2P的ICE不完善,老版本只实现了stun和turn,缺乏交互式连接实现,新版本重构ICE部分,实现了交互式连接,全面兼容ICE-FULL/ICE_LITE规范。

metaRTC ICE 流程

收集候选地址(Candidate)

  1. 通信前先搜集本地多个网卡的IP和端口号(canidate)
  2. 搜集stun的candidate以及对应的公网IP和端口号。
  3. 访问TURN server得到所有中继candidate以及公网IP和端口。
  4. 搜集webrtc tcp candidate
  5. 搜集Tcp连接的TURN中继candidate

通过上述的步骤,可以得到这个candiate是哪个网卡的,是否存在NAT,可以得到是否是relay。搜集到candidate后需要给这些candidate分配优先级。通常来说turn的candidate优先级最低。

很多路由对udp不太友好,udp被路由屏蔽时metaRTC ICE会智能切换到webrtc tcp或者turn tcp连接。

交换候选地址

通过MQTT/WEBSOCKET等交换candidate信令,建立local candidate队列和remote candidate队列。

连接检测

将local candidate和remote candidate配组(pair),进行多组连接检测,连接检测结束后取的可用连接组合开始webrtc通信。文章来源地址https://www.toymoban.com/news/detail-409519.html

metaRTC ICE 回调接口

typedef struct{
	void* context;
	void (*onIceStateChange)(void* context,int32_t uid,YangIceCandidateState iceState);
	void (*onConnectionStateChange)(void* context, int32_t uid,YangRtcConnectionState connectionState);
	void (*onIceCandidate)(void* context, int32_t uid,char* sdp);
}YangIceCallback;

到了这里,关于metaRTC新版本重构ICE全面兼容ICE协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 下载VSCode-1.85.2,解决新版本(1.86)服务器不兼容问题

    VSCode从V1.86起对部分服务器不兼容(remote ssh),出现类似报错 原因可参考文档 可以升级服务器版本或者降低VSCode版本来解决 VSCode支持Portable Mode,可以同时安装多个版本 下载链接 官方 官方,1.85.2 [123网盘] https://www.123pan.com/s/nPH8jv-EJi8H.html提取码:mBgZ

    2024年02月21日
    浏览(43)
  • 微信小程序获取手机号详细过程(新版本2.21.2)(旧版本兼容)

    首先你要确保自己的基础库版本是2.21.2,我选择的是当前最新的 在button的文档描述 在代码开始前给大家讲讲注意事项(不需要直接往下看) 然后接下来是项目代码 WXML 样式的话自己按需要设置 通过微信小程序官方api获得回调内容 已经会出现这个页面了 注意如果是个人小程

    2024年02月02日
    浏览(44)
  • Scikit-learn:全面概述

    在机器学习领域,Python已经成为一种重要的编程语言,这得益于其简洁、多功能和丰富的库。在这些库中,Scikit-learn作为其中最受欢迎和强大的之一,脱颖而出。它提供了各种工具、算法和功能,使用户能够轻松地进行各种机器学习任务。在本文中,我们将探索Scikit-learn的主

    2024年02月10日
    浏览(52)
  • 软件测试最全面试题及答案整理(2023最新版)

    目录 1、你的测试职业发展是什么? 2、你认为测试人员需要具备哪些素质 3、你为什么能够做测试这一行 4、测试的目的是什么? 5、测试分为哪几个阶段? 6、单元测试的测试对象、目的、测试依据、测试方法? 7、怎样看待加班问题 8、结合你以前的学习和工作经验,你认为如何

    2024年02月05日
    浏览(61)
  • Cefsharp-Winform-113.3.50(chromium5672)最新版体验兼容性测试

    一、下载nupkg包(4个)提示:( 不支持H264,支持MP3,WEBGL,WEBGL2等 )支持H264最新版本109.*自行搜索  winform包地址(依赖包下载地址如下):NuGet Gallery | CefSharp.WinForms 113.3.50 https://globalcdn.nuget.org/packages/cefsharp.winforms.113.3.50.nupkg https://globalcdn.nuget.org/packages/cefsharp.common.113.3.50.nupkg

    2024年02月08日
    浏览(36)
  • 【NLP的python库(03/4) 】: 全面概述

            Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始,到句法分析、解析文本并分配句法角色,再到语义处理,例如识别命名实体、情感分析和文档分类,一切都由至少一个库提供。那么,你从哪里开始呢?         本文的目标是

    2024年02月07日
    浏览(38)
  • 网络安全面试题集及答案整理汇总(2023最新版详细)

    随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的Offer之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年,面试过很多人也出过很多面试题目,也在网上收集了

    2024年02月08日
    浏览(62)
  • “面试造飞机,上岗拧螺丝“?2023软件测试岗面试真题超全面整理(最新版)

    软件测试这个岗位,想要找到一份高薪的工作,离不开繁杂的面试程序,这相信是很多准备应聘软件测试岗的朋友难题, 很多已经在职多年的软件测试工程师对于这个岗位面试都谈虎色变,那么,为什么软件测试岗位的面试这么难呢? 第一,软件测试属于互联网IT行业,可以

    2024年02月11日
    浏览(47)
  • 从GitHub下载的Android Studio项目,在较新版本AS打开出现版本不兼容问题的解决方法。

            在GitHub下载了一个Android Studio计算器项目,打开项目后出现一系列问题,本文简单记录出现的问题及解决方法。 问题描述:The specified Gradle installation directory \\\'G:AndroidAndroid Studiogradlegradle-2.14.1\\\' does not exist. 解决方法:按照以下步骤更改Gradle安装目录的路径 打开您的

    2024年02月06日
    浏览(68)
  • Python数据分析与可视化概述(内容全面 附PPT)

    需要PPT请点赞关注收藏后评论区留言私信~~~ 下面先举几个数据可视化的案例       数据:是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号 数据是信息的表现形式

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包