jdk db版本_企业视频会议系统音视频通话EasyRTC-SFU版本研发中更合适的配置文件格式-TOML配置介绍 - TSINGSEE...

在 EasyRTC-SFU 版本的开发过程中,很多配置需要存储在配置文件中。开发人员经常使用的配置文件有 ini、json、xml、yaml 等格式,在综合分析各种文件格式的优劣后,我们最终确认使用 toml 格式作为配置文件格式。

206e4e2ec72b27b523b281cccc2c0ae7.png

ini 文件格式是最传统的配置文件格式,其书写格式如下:

[http]
; 是否开启登陆输入错误,则锁定用户 n 分钟的功能,true/false
http_open_lock_error_user=true
; 登录错误 7 次
http_error_numbers=7
; Sqlite3数据库文件路径
dir_data=data/db

.ini 文件格式提供了一种简单的配置文件方案,但是在使用过程中会出现部分问题。比如对于布尔类型的值,既可以是true/false,又可以使0/1,会使人产生混乱的情况。并且对于字符串变量也未添加“”明确表示其为字符串变量。对于多层嵌套和数组的配置支持也不不是很完善。
.json 文件格式在数据存储和传输的时候非常方便,在需要网络传输以及序列化反序列化操作时常用,其基本格式如下:

{"a": "a","b": "b","c":{"x": "","y": ""},"e":[{ "x":"e[0].x", "y":"e[0].y" },{ "x":"e[1].x", "y":"e[1].y" }]}

json 格式虽然支持很多种操作,但是无法添加注释,并且如果程序员误操作,经常会让文件中的配置全部缩写在一起,导致查看困难的问题。
.xml 文件是一种可扩展标记语言,其基本写法如下:

<?xml version="" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

xml 被设计用来传输和存储数据,但是由上文可以看出编写 xml 文件比其他配置文件都要多写很多字符,不符合便捷的需求。
.yaml 文件是目前最常用最流行的配置文件格式。它支持对象、数组等很多复杂数据,大小写敏感,缩进不允许使用 tab,必须使用空格。其格式如下

languages:- Ruby- Perl- Python 
websites:YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org

yaml 虽然很适合,但是它的语法过于复杂,并且强制使用缩进表示层级关系,对于部分无编辑器的机器非常不友好。
因此最终确认采用 .toml 文件作为配置文件。其基本格式如下:

[http]
# HTTP 服务端口,非安全的方式,正式使用请填写 false
httpEnable = true
httpAddr = ""
# HTTPS 服务端口,安全考虑仅支持 HTTPS
httpsAddr = ""
# HTTPS 公有证书
certFile = "./certs/"
# HTTPS 私有秘钥
privateKeyFile = "./certs/"
# 是否开启 API 验证
apiAuth = true# 接口调用token或sid 有效时间 单位(秒), 86400 为 24 小时,24*60*60
tokenTimeout = 86400

该种格式的配置文件比 ini 文件更强大,比 .yaml 更简单,不采用缩进、括号等方式,可读性和可编辑性非常好,因此最终采用此种格式作为项目的配置文件。

a2d8f15d1ad4a03cc67fdda0930cb4c1.png

toml 文件的官方网址为。感兴趣的人可以去官网继续学习更多的用法。

最后再来讲一下EasyRTC-SFU版本的特点。SFU架构特点是不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给房间内的其他终端。EasyRTC-SFU版使用该方案能够对CPU资源实现低消耗,且有很大的灵活性,能够更好地适应不同的网络状况和终端类型。

0d6675ccfc560ec259f5017b01169c7a.png

如若想了解更多内容,欢迎访问TSINGSEE青犀视频,也可以随时咨询我们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP开源管理系统 Gms,GMS 一个成熟的gms系统,拥有基本的权限管理和分类,后台很好 Windows Develop 249万源代码下载- www.pudn.com...

文件名称: GMS下载 收藏√ [5 4 3 2 1 ]开发工具: PHP文件大小: 14012 KB上传时间: 2016-01-03下载次数: 0提 供 者: 马继康详细说明&#xff1a;一个成熟的gms系统,拥有基本的权限管理和分类&#xff0c;后台很好-a good gms system文件列表(点击判断是否您需要的文件&a…

numpy序列预处理dna序列_个人隐私DNA亲子鉴定序列

个人隐私DNA亲子鉴定序列DNA亲子鉴定是基于医学&#xff0c;法律或个人原因解决亲子关系的最先进&#xff0c;最准确的方法。周转时间&#xff1a;凭借先进的DNA技术&#xff0c;亲子鉴定准确&#xff0c;快速且价格合理。现在可以在样品到达实验室后的3至7个工作日内确定亲子关…

php如何统计数组的个数,如何用php统计数组元素的个数(附代码)

这篇文章主要介绍了php统计数组元素个数的方法的相关资料,需要的朋友可以参考下count():对数组中的元素个数进行统计;sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一…

usb接口驱动_关于电脑上的USB接口,都在这儿了!

美美的周末时光到来了&#xff01;今天给大家科普一点电脑的常识。想必大家在日常使用电脑的时候&#xff0c;会经常看到电脑右侧有一些不同的借口&#xff0c;看着像USB借口&#xff0c;但是标志却很奇怪&#xff0c;那到底为什么呢&#xff1f;还有&#xff0c;这些接口是2.0…

oracle将字符串转化为blob,oracle String类型转换成blob类型插入

CERT_1以前是varchar(3000),现在的类型是blob类型&#xff0c;做数据库迁移时&#xff0c;使用导入工具不能直接导入&#xff0c;所以使用SQL&#xff0c;下面是SQLdeclaredirections BLOB;amount BINARY_INTEGER;offset INTEGER;first_direction VARCH…

kibana 查看索引库中文档个数_百度索引量是什么意思?和百度收录量的区别。...

百度索引量表示所有网名最多会从百度看到的这个网站页面数量&#xff0c;用官方的话来说就是可以被搜索用户搜索到的网站数据库。 百度索引量是什么意思&#xff1f; 百度索引量表示所有网名最多会从百度看到的这个网站页面数量&#xff0c;用官方的话来说就是可以被用户搜索到…

oracle form中实现隐藏,Oracle Form数据块实现同时只有一个人锁定修改数据

在上一篇中文章中&#xff0c;如果建立了数据块的四个触发器&#xff0c;并在触发器中调用了程序单元中对应数据块名的包&#xff0c;则在这个包中还需调用专门用于实现插入行、锁定行、更新行、删除行的包MAIN_PVT。在这个包MAIN_PVT中主要调用的是数据块中的存储过程实现插入…

blob 在线解码_「沙发管家」腾讯极光盒子3Pro发布!4+32G内存8K解码

10月22日&#xff0c;腾讯携手创维数字&#xff0c;推出了首款 8K 高清电视盒子——腾讯极光盒子 3Pro 。这款产品的定位是“8K 星耀旗舰家庭娱乐主机”&#xff0c;盒子外观是高级黑加上一些不规则形状设计&#xff0c;磨砂材质&#xff0c;边缘还有一道蓝色的荧光&#xff0c…

oracle 重复的记录数,如何确定Oracle数据库表中重复的记录

作为一个Oracle数据库开发者或者DBA&#xff0c;在实际工作中经常会遇到这样的问题&#xff1a;试图对库表中的某一列或几列创建唯一索引时&#xff0c;系统提示ORA-01452&#xff1a;不能创建唯一索引&#xff0c;发现重复记录。下面我们以表code_ref为例来讨论这个问题及其解…

360手机浏览器_网信办:UC、QQ、360、搜狗等8款手机浏览器被纳入首批整治范围...

点击蓝字 关注我们UC、QQ、华为、360、搜狗、小米、vivo、OPPO等8款影响力较大的手机浏览器被纳入首批重点整治范围为有效解决网民反映强烈的手机浏览器网络传播乱象&#xff0c;国家网信办即日起对手机浏览器进行专项集中整治&#xff0c;重点聚焦行业突出问题实施“靶向治疗”…

整合php和mysql lnmp,安装配置LNMP服务器(Nginx+PHP+MySQL)

一、安装基础库&#xff1a;yum install gcc make glibc glibc-common zlib gd gd-devel freetype二、安装及配置mysql1、安装MySQLyum install mysql mysql-server #输入Y即可自动安装,直到安装完成/etc/init.d/mysqld start #启动MySQL2、为root账户设置密码mysql_secure_ins…

重建索引一般需要多久_游泳小白学游泳,一般需要多久才能学会?猜猜看

由于每个人的身体条件不同&#xff0c;所以每个人从零基础到学会游泳需要的时间也不同。从我一对一的教学经验来看&#xff0c;一般正常体能的人需要5节课就能学会游泳&#xff0c;每节课1个小时。/01/ 零基础一般需要学什么泳姿&#xff1f;在国内来说&#xff0c;一般零基础先…

oracle字段公式怎么执行,Oracle 在存储过程或函数中执行字符串sql PDF 下载

主要内容&#xff1a;有时&#xff0c;我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句&#xff0c;然后再执行拼凑后的sql字符串&#xff0c;如何做到呢&#xff1f;参考以下代码&#xff1a;FUNCTION CALCULATE_TARGET_SCORE (CUR_MONTH IN NVARCHAR2)RETURN NCLOB…

cxgrid 写数据_大线索报道:2020年策划人必备的50个写方案技巧

【免费】大线索-免费全场景AI数据平台&#xff0c;科技引领未来&#xff0c;协助短视频运营变现。​在乙方期间写了几百个方案&#xff0c;看过大大小小数千个方案&#xff0c;总结了一些好方法&#xff0c;好思路。关于写方案&#xff0c;更多是见仁见智&#xff0c;没有具体的…

oracle dg物理和逻辑,Oracle DG介绍(物理无实例)

DG是dataguard&#xff0c;也叫standby&#xff0c;是oracle提供的一种容灾解决方案&#xff0c;只有企业版可用&#xff0c;标准版是不能用的&#xff0c;DG最多可以有一个主节点&#xff0c;9个DG是dataguard&#xff0c;也叫standby&#xff0c;是Oracle提供的一种容灾解决方…

.net 5 正式版_ASP.NET Core 3时代全新开启,DevExpress ASP.NET增强Data Grid

由轻量级JavaScript小部件提供支持的70个高性能DevExpress ASP.NET Core Controls&#xff0c;包含功能完善的报表平台&#xff0c;因此您可以再最短时间内交付响应迅速的业务线应用程序。DevExpress ASP.NET Core控件v19.2新版正式增强Data Grid和TreeList、File Manager等控件…

linux文件目录含义,Linux中文件权限目录权限的意义及权限对文件目录的意义

linux中目录与文件权限的意义一、文件权限的意义r&#xff1a;可以读这个文件的具体内容&#xff1b;w&#xff1a;可以编辑这个文件的内容&#xff0c;包括增加删除文件的具体内容&#xff1b;x&#xff1a;文件就具有了可执行的权限-------注意&#xff1a;这里和window不一样…

action script3.0殿堂之路_【日本乐坛传奇】松任谷由实是谁?新音乐女王的登基之路!...

松任谷由实是谁&#xff1f;日本人引以为傲的queen of pops&#xff1f;没错&#xff0c;但她&#xff0c;却不仅只是这样。她是日本音乐界的女王&#xff0c;日本流行音乐界始祖级别的人物&#xff0c;日本新音乐活着的精神象征&#xff0c;日本流行界天花板级别的歌手。她和其…

linux权限最小化分级,vim可视化Linux系统安全最小化原则 su sudo

一、vim在可视化模式下编辑crlv,会变成-- VISUAL BLOCK --,然后用上下左右键去选中.多行注释:ESC进入命令行模式;Ctrlv进入VISUAL BLOCK模式上下左右键调整需要注释多少行;Shifti即大写I或s进入插入模式,输入注释的符号,比如#;再按两下ESC键,这时就可完成多行注释,命令行模式下…

ltspice 双脉冲_焊烟脉冲布袋式除尘器制作

菲翔环保为您详细解读SAQutg焊烟脉冲布袋式除尘器制作的相关知识与详情&#xff0c;锅炉滤筒除尘器停机时&#xff0c;若停机时间短&#xff0c;不宜将滤袋清灰&#xff0c;应留意除尘器的保温&#xff0c;若停机时间长&#xff0c;应将所有滤袋清灰&#xff0c;并用引风机将滤…