smart rtmpd 服务器配置文件说明及优化方法介绍
----------------------------------------------------------------------------------------------------------------------------------------
一分钟快速搭建 rtmpd 服务器: https://blog.csdn.net/freeabc/article/details/102880984
软件下载地址: http://www.qiyicc.com/download/rtmpd.rar
github 地址:https://github.com/superconvert/smart_rtmpd
-----------------------------------------------------------------------------------------------------------------------------------------
smart rtmpd 服务器配置文件说明及优化方法介绍
就 smart rtmpd 做一个简单的介绍。
第一 smart rtmpd 无任何依赖,无需安装,解压即可运行,非常方便快捷,无论是技术老手还是新手,都能轻易部署。
第二 smart rtmpd 跨平台,windows, linux ( ubuntu & centos ), 都支持。
第三 smart rtmpd 性能高,体积小,作为一款新型的直播服务器,就是为挑战而生的,否则,就没存在的意义了。
第四 smart rtmpd 支持级联(可做大规模集群)和 CDN 的分发。
第五 smart rtmpd 具有灵活的接口,满足各种业务的需要。就说这么多吧有兴趣的可以看看
一分钟快速搭建 rtmpd 服务器: https://blog.csdn.net/freeabc/article/details/102880984
1. smart rtmpd 配置文件说明
<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置更改后,重启 rtmp 服务器 -->
<config>
<!-- 跟踪耗时, 不要轻易打开, 容易 crash -->
<elapse>false</elapse>
<!-- 鉴权地址: http://authurl/v1/smart_rtmpd?type=rtmp&action=publisher&your param. -->
<authurl></authurl>
<!-- NAT 映射地址 -->
<natmap/>
<!-- 内网地址推流,映射成外网地址, 内外网都能播放 -->
<hostmap outer="" inner=""/>
<!-- 套结字基本配置项 -->
<sock>
<!-- 接收缓冲区, 单位 KB -->
<recvbuffer>4096</recvbuffer>
<!-- 发送缓冲区, 单位 KB -->
<sendbuffer>4096</sendbuffer>
</sock>
<!-- SSL 配置, 单项认证 serverkey, servercert 不为空; 双向认证主要用于级联 -->
<ssl>
<serverca></serverca>
<serverkey></serverkey>
<servercert></servercert>
<clientca></clientca>
<clientkey></clientkey>
<clientcert></clientcert>
</ssl>
<!-- RTMP 网络,CPU,内存相关 -->
<rtmp>
<!-- 服务器地址 -->
<ip></ip>
<!-- 服务器端口 -->
<port>1935</port>
<!-- 开启 ssl -->
<ssl>false</ssl>
<!-- 直播标签 -->
<live>live</live>
<!-- h265 的 CodecID -->
<codech265>12</codech265>
<!-- 组包模式 1 或 2 -->
<packmode>1</packmode>
<!-- gop 队列最大大小 -->
<gopsize>512</gopsize>
<!-- 秒开功能, 不过增加延时 -->
<gopenable>false</gopenable>
<!-- 心跳包间隔时间(分) -->
<heartbeat>3</heartbeat>
<!-- chunksize -->
<chunksize>8192</chunksize>
<!-- 接收端队列抖动大小,超过就丢包 -->
<shrinkesize>80</shrinkesize>
<!-- 堆积包个数 -->
<waitcount>4</waitcount>
<!-- 堆积延时设置 -->
<waitsleep>120</waitsleep>
<!-- 堆积大小设置 当 waitcount == 0 时,启用 -->
<waitchunk>8192</waitchunk>
<!-- 数据发送连续阻塞次数, 超过断开链接 -->
<blockcount>1024</blockcount>
<!-- 是否开启 http-flv 输出 -->
<hasflv>true</hasflv>
<!-- 是否开启 http-hls 输出 -->
<hashls>true</hashls>
<!-- 是否开启 http-dash 输出 -->
<hasdash>true</hasdash>
<!-- 是否开启 rtsp-live 输出 -->
<hasrtsp>true</hasrtsp>
<!-- rtmp2rtsp rtp payload 类型定义 -->
<rtp h265="98" h264="96" aac="97"/>
</rtmp>
<!-- RTSP 服务器配置 -->
<rtsp>
<!-- 服务器地址 -->
<ip></ip>
<!-- 服务器端口 -->
<port>8554</port>
<!-- 开启 ssl -->
<ssl>false</ssl>
<!-- 是否开启 rtmp 输出 -->
<hasrtmp>true</hasrtmp>
<!-- 关闭 rrsp 服务 -->
<enable>true</enable>
<!-- rtp & rtcp 端口区间, que 接收队列最大缓冲 -->
<rtp min="30000" max="60000" que="20000" />
</rtsp>
<!-- HTTP 服务器配置 -->
<http>
<!-- 服务器地址 -->
<ip></ip>
<!-- http 端口 -->
<port>8085</port>
<!-- 开启 ssl -->
<ssl>false</ssl>
<!-- 关闭 http 服务 -->
<enable>true</enable>
<!-- 状态查询, vod 列表查询,需要验证 -->
<httpcmd user="admin" pwd="123456"/>
<!-- http 累积数据大小, 超过此值才发送 -->
<httpcache>8192</httpcache>
<!-- http 文件下发, 文件每次读取数据大小 -->
<httpchunk>8192</httpchunk>
<!-- IO 队列堆积个数 -->
<ioshrink>512</ioshrink>
<!-- http-flv 数据累积超过此值丢包, 单位 KB -->
<flvblock>2048</flvblock>
<!-- http-hls vod 模式缓存文件个数, 如出现音视频文件找不到,扩大这个值 -->
<hlsvodcache>20</hlsvodcache>
<!-- http-hls live 模式缓存文件个数, 如出现音视频丢帧,扩大这个值 -->
<hlslivecache>4</hlslivecache>
<!-- http-hls 模式 0 - ts, 1 - fmp4 -->
<hlsmode>0</hlsmode>
<!-- http-hls 切片个数 -->
<hlssegment>3</hlssegment>
<!-- http-hls 切片时长(秒) -->
<hlsduration>5</hlsduration>
<!-- dash vod 模式缓存文件个数, 如出现音视频文件找不到,扩大这个值 -->
<dashvodcache>20</dashvodcache>
<!-- dash live 模式缓存文件个数, 如出现音视频丢帧找不到,扩大这个值 -->
<dashlivecache>8</dashlivecache>
<!-- dash 回收文件时延, 最小 10 秒 -->
<dashduration>10</dashduration>
<!-- http-vod 模式 0 - dash 模式, 1 - hls 模式 -->
<vodmode>0</vodmode>
<!-- http-vod 存储分割时间( 分钟 ) -->
<vodduration>1</vodduration>
</http>
<!-- vhost 列表 vhost 可以有多个节点,url 也可以有多个节点,Forward 第三方平台,上面的 packmode 一定配置为 2 -->
<vhosts>
<!-- 可以针对虚拟主机进行 forward,name 就是虚拟主机地址和端口比如: 192.168.1.108:1936 -->
<vhost name="">
<!-- 改写 url , 如: 本机 192.168.1.1, forward 地址 192.168.1.2, 就改写成 forward 的地址 -->
<rewrite>false</rewrite>
<!-- 是否开启 flv ,优先级高于全局配置 -->
<hasflv>true</hasflv>
<!-- 是否开启 hls ,优先级高于全局配置 -->
<hashls>true</hashls>
<!-- 是否开启 dash ,优先级高于全局配置 -->
<hasdash>true</hasdash>
<!-- 是否开启 rtsp ,优先级高于全局配置 -->
<hasrtsp>true</hasrtsp>
<!-- forword 地址列表,默认端口号 1935 也可以不加 -->
<forward></forward>
<!-- forword 地址列表,默认端口号 1935 也可以不加 -->
<forward></forward>
</vhost>
<vhost name="">
</vhost>
<!-- 可以针对具体的 url 进行 forward,从而避免 forward 整个 vhost name 比如: rtmp://192.168.1.108/live/stream -->
<url name="">
<!-- 改写 rtmp url ,为空表示不改写,改写格式: rtmp://192.168.1.108/live/stream -->
<!-- 例如: rtmp://www.cctv.com/live/sport 可以改写成 rtmp://www.shandong.com/live/sport -->
<rewrite></rewrite>
<!-- 是否开启 flv ,优先级高于全局配置 -->
<hasflv>true</hasflv>
<!-- 是否开启 hls ,优先级高于全局配置 -->
<hashls>true</hashls>
<!-- 是否开启 dash ,优先级高于全局配置 -->
<hasdash>true</hasdash>
<!-- 是否开启 rtsp ,优先级高于全局配置 -->
<hasrtsp>true</hasrtsp>
<!-- forword 地址列表,默认端口号 1935 也可以不加 -->
<forward></forward>
<!-- forword 地址列表,默认端口号 1935 也可以不加 -->
<forward></forward>
</url>
<url name="">
</url>
</vhosts>
<!-- 日志相关 -->
<log>
</log>
</config>
1.1 --- 性能跟踪 ( 技术人员 )
elapse 性能追踪开关,技术人员调试跟踪时,值为: true 或 false , 默认是 false 。运营时,建议关闭。
natmap 如果您的服务器位于内网 NAT 后面提供服务,有些服务对我暴露的是 NAT 上的外网地址,
那么你们就可以配置这个选项,natmap 需要填写服务在 NAT 上的外网地址,否则,部分服务可能
不能正常使用,比如:webrtc 的 udp 服务,rtsp 的 udp 传输模式下,如果不配置此项,况且
服务器处于 NAT 映射模式,则这个不能正确运行
hostmap 如果您的服务器位于内网,想内网外网同时混合使用,比如您内网地址是 192.168.1.1, 外网域名是 www.qiyicc.com,
那么 hostmap 就要配置为 inner="192.168.1.1" outer="www.qiyicc.com",那么如果内网推流 rtmp://192.168.1.1/live/stream,
那么服务器则会自动把流的 url 转换为 rtmp://www.qiyicc.com/live/stream,内网用户可以用 rtmp://192.168.1.1/live/stream 播放流,
外网用户则可以使用 rtmp://www.qiyicc.com/live/stream
1.2 --- 鉴权服务器地址 ( 技术人员 )
authurl 鉴权服务器地址,防止有恶意用户推流,拉流,同时也可以配合自己的业务对用户进行授权处理,具体用法可参考博文
https://blog.csdn.net/freeabc/article/details/105781985
1.3 --- 套接字选项 ( 技术人员 )
TCP 套接字 recvbuffer 接收缓冲区大小,默认是 KB, TCP 套接字 sendbuffer 发送缓冲区大小,默认是 KB
1.4 --- SSL 配置项说明 ( 技术人员 )
我们知道 SSL 支持单项和双向认证,下面就两种方法,我们一一介绍。
我们最常见的是单项认证,单项认证的配置方法如下,别的字段为空
<serverkey>server_key.pem</serverkey>
<servercert>server_cert.pem</servercert>
双向认证配置如下,一般 ca 为同一个。
<serverca>ca.pem</serverca>
<serverkey>server_key.pem</serverkey>
<servercert>server_cert.pem</servercert>
<clientca>ca.pem</clientca>
<clientkey>client_key.pem</clientkey>
<clientcert>client_cert.pem</clientcert>
1.5 --- rtmp 相关配置项
服务器绑定指定的网络地址 --- 空表示绑定所有的网络地址 (多网卡)
<ip></ip>
服务器端口 --- 默认都是 1935,这也是 rtmp 的默认端口
<port>1935</port>
true : 开启 ssl , 推流拉流必须是 rtmps 方式; false : 关闭 ssl,推流拉流必须是 rtmp 方式
怎么让 ffmpeg 支持推送 rtmps 流,参考博文 https://blog.csdn.net/freeabc/article/details/105526273
<ssl>false</ssl>
smart rtmpd 只支持两种格式的推流和拉流, 举例如下:
点播 url --- rtmp://192.168.1.1:1935/vod/stream
直播 url --- rtmp://192.168.1.1:1935/live/stream
支持两种 app 标签, live 和 vod ,如果你觉得 live 不符合你的需求,
可以改成你想要的格式 <live>xxx</live>,那么推拉流格式如下:
rtmp://192.168.1.1:1935/xxx/stream
我们就有关 rtmp 的 url 做一个简单的说明
rtmp://192.168.1.1:1935/live/stream
上述的 rtmp url 具体
rtmp:// 代表的是 rtmp 协议
192.168.1.1:1935 代表 vhost ,也可以是域名,一个机器可能有一个 ip 多个域名
live 是 app 标签,代表一个应用的标签,类型,可以看作一个应用分类
stream 是这个流的名字,这个可以随意写自己想要的。比如:
rtmp://192.168.1.1:1935/live/sport
rtmp://192.168.1.1:1935/live/movie
rtmp://192.168.1.1:1935/live/music
由于 adobe 没用在 rtmp 协议内并不支持 h265 ,因此协议内的 codecID 是没有统一的值的,
包括数据格式,但国内的媒体爱好者,有个不成文的规矩,流的格式尽量按 h264 的风格走,codecID
定义为 12. 但也有可能采用其它的值,这个地方就可以灵活配置 codecID,以适应不同的需求
<codech265>12</codech265>
smart rtmpd 打包模式分为两种,这里值只能是 1 或 2. 对于模式 1 性能会更高一点,但只适合
smart rtmpd 内部交互,如果采用这种模式可能和第三方的程序对接会有问题,比如做 CDN 分发或
级联. 如果级联对象或 CDN 对象都是 smart rtmpd 没问题,打包模式可以为 1. 如果是第三方的
产品,比如 srs 或 nginx rtmp ,就必须采用打包模式 2. 建议服务器端全部用 smart rtmpd 做
级联和 CDN 分发,模式为 1, 这样性能更高。
<packmode>1</packmode>
这个选项是对于有些推流软件, gopsize 超级大,非常不适合直播,也不适合妙可,如果 gopsize
超过 512 帧,就采用丢弃的方式,防止因为坏流导致 smart rtmpd 出现性能降低或不稳定。
<gopsize>512</gopsize>
秒开功能, 值为 true 表示开启,false 表示关闭,如果开启妙开功能,肯定会带来直播的延时,最大
可能一个 GOP 的时长。
<gopenable>false</gopenable>
smart rtmpd 的心跳时间,单位分钟,默认是 3 分钟
<heartbeat>3</heartbeat>
性能调优项之一
rtmp 包的 chunk 大小, 理论上数值越大,性能越好,当然不是无限大最好,默认是 8K ,你可以设置
64K, 跟踪一下效果,找到一个适合自己的值,good luck!
<chunksize>8192</chunksize>
smart rtmpd 为播放端设置的缓冲区大小,不适合过大,如果日志内出现 shrinke 的字样,说明播放端
接收数据过慢,出现丢包,通过调整这个值,可以增大缓冲队列,可能会改善,但不从根本上解决问题。
<shrinkesize>80</shrinkesize>
性能调优项之一
包堆积超过多少,才发送 rtmp 数据到播放端,建议采用 0 到 4 之间,太大肯定引起延时
<waitcount>4</waitcount>
性能调优项之一
发送时间间隔,单位毫秒。如果包的累积满足条件了,但 waitsleep 时间还未到,smart rtmpd 也不会
继续发包。如果想提速,可以设置为 0 或者 20,设置过大,也会带来一点点延时。
<waitsleep>120</waitsleep>
性能调优项之一
waitcount == 0 时,这种发送模式才起作用,单位 B。如果 waitcount == 0 ,意思就是说数据累积
8K ,smart rtmpd 就可以推数据到播放端,如果你网络足够好,可以设置 128 试试。
<waitchunk>8192</waitchunk>
数据发送连续阻塞次数, 超过断开链接 , 如果 smart rtmpd 推送数据到播放器,如果尝试了 1024 次
都是阻塞状态,则认为这个播放器网络太差,不具有直播的条件,断开与这个播放器的链接。
<blockcount>1024</blockcount>
true : 开启 rtmp 转 http-flv , false : 关闭
<hasflv>true</hasflv>
true : 开启 rtmp 转 http-hls , false : 关闭
<hashls>true</hashls>
true : 开启 rtmp 转 mpeg-dash , false : 关闭
<hasdash>true</hasdash>
true : 开启 rtmp 转 rtsp , false : 关闭
<hasrtsp>true</hasrtsp>
rtmp 转 rtsp ,需要对视频的 rtp payload 进行定义
<rtp h265="98" h264="96" aac="97"/>
1.6 --- rtsp 配置项
服务器绑定指定的网络地址 --- 空表示绑定所有的网络地址 (多网卡)
<ip></ip>
服务器端口 --- 默认都是 8554
<port>8554</port>
true : 开启 ssl , 推流拉流必须是 rtsp 的加密方式; false : 关闭 ssl
<ssl>false</ssl>
是否开启 rtsp 转 rtmp , 这必须要求 rtsp 视频编码为 h264, 音频编码是 aac
<hasrtmp>true</hasrtmp>
关闭 rtsp 服务
<enable>true</enable>
rtp 传输一般都是 UDP 的,这里是是需要开启的 UDP 服务的端口区间 que 接收队列最大缓冲 ,
如果接收到的 RTP 包,超过这个队列,则会自动丢弃未处理的包。
<rtp min="30000" max="60000" que="20000" />
1.7 --- http 配置项
服务器绑定指定的网络地址 --- 空表示绑定所有的网络地址 (多网卡)
<ip></ip>
服务器端口 --- 默认都是 8080
<port>8080</port>
true : 开启 ssl , 推流拉流必须是 https 的加密方式; false : 关闭 ssl
<ssl>false</ssl>
true : 开启 http 服务, false : 关闭 http 服务
<enable>true</enable>
smart rtmpd 提供了一些对外的接口,以方便查询 smart rtmpd 的内部流的状态信息,
为了防止恶意查询,查询时,需要带上用户名和密码才行,这个就是那个配置
<httpcmd user="admin" pwd="123456"/>
查询接口如下,查看所有流信息
http://192.168.1.1:8080/api/application?token=md5(user + pwd)
查看具体流信息
http://192.168.1.1:8080/api/application?token=md5(user + pwd)&stream=流的名字
查看统计信息
http://192.168.1.1:8080/api/statistics?token=md5(user + pwd)
token 等于 user + pwd 的字符串的 md5 值 16 位小写字符串值,
比如: admin + 123456 = admin123456,token=84c45962d887564f
http-flv 等数据下发时,有个数据缓冲累积单位字节,如果累积到了 8K 就下发给播放器
<httpcache>8192</httpcache>
如果下发的是文件,那么每次需要下发数据大小,如果速度加快,建议这个值可以再大点,
不过需要注意的是,不是越大越好,需要自己慢慢调试,找出最优的值。
<httpchunk>8192</httpchunk>
smart rtmpd 有写磁盘的动作,如果写磁盘的数据队列超过这个值,则会丢弃这些还未写到
磁盘的数据,这表明您的磁盘 IO 确实太慢了。。。。。
<ioshrink>512</ioshrink>
http-flv 数据累积超过此值丢包, 单位 KB
<flvblock>2048</flvblock>
http-hls vod 模式缓存文件个数, 如出现音视频文件找不到,扩大这个值
<hlsvodcache>20</hlsvodcache>
http-hls live 模式缓存文件个数, 如出现音视频丢帧,扩大这个值
<hlslivecache>4</hlslivecache>
http-hls 模式 0 - ts, 1 - fmp4, 这里就别改动了,建议存成 ts 格式。fmp4 支持的不好,别启用了
hls 一般时延比较大,最好的改善方法是,推流端的 GOP 设置要合适,建议要控制在 1 秒之内,这个条
件满足,然后 smart rtmpd 的这些配置项,切片时长可以设置为 2 秒或这 1 秒(保证 GOP 小于 1 秒)
然后切片格式就为 3 吧,不断的尝试优化,基本上时延能在 3 秒左右。
<hlsmode>0</hlsmode>
http-hls 切片个数
<hlssegment>3</hlssegment>
http-hls 切片时长(秒)
<hlsduration>5</hlsduration>
dash vod 模式缓存文件个数, 如出现音视频文件找不到,扩大这个值
<dashvodcache>20</dashvodcache>
dash live 模式缓存文件个数, 如出现音视频丢帧找不到,扩大这个值
<dashlivecache>8</dashlivecache>
dash 回收文件时延, 最小 10 秒
<dashduration>10</dashduration>
smart rtmpd 的录像模式,具体可参考博文
https://blog.csdn.net/freeabc/article/details/103360588
0 - dash 模式, 1 - hls 模式 ,建议录像采用 hls 模式,毕竟这个是最成熟的。
<vodmode>0</vodmode>
http-vod 录像分割时间( 分钟 )
<vodduration>1</vodduration>
smart rtmpd 服务器配置文件说明及优化方法介绍的更多相关文章
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
- php-fpm进程数优化方法
原文地址:https://www.douban.com/note/315222037/ 背景最近将Wordpress迁移至阿里云.由于自己的服务器是云服务器,硬盘和内存都比较小,所以内存经常不够使,通 ...
- Tomcat从内存、并发、缓存方面优化方法
Tomcat有很多方面,从内存.并发.缓存四个方面介绍优化方法. 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 cata ...
- (摘录)26个ASP.NET常用性能优化方法
数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...
- 26个ASP.NET常用性能优化方法
数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...
- .NET 性能优化方法总结==转
.NET 性能优化方法总结 目录 目录 1. C#语言方面... 4 1.1 垃圾回收... 4 1.1.1 避免不必要的对象创建... 4 1.1.2 不要使用空析构函数 ★... 4 1.1.3 ...
- tomcat常用配置详解和优化方法
tomcat常用配置详解和优化方法 参考: http://blog.csdn.net/zj52hm/article/details/51980194 http://blog.csdn.net/wuli ...
- 轻量级HTTP服务器Nginx(Nginx性能优化技巧)
轻量级HTTP服务器Nginx(Nginx性能优化技巧) 文章来源于南非蚂蚁 一.编译安装过程优化 1.减小Nginx编译后的文件大小在编译Nginx时,默认以debug模式进行,而在debu ...
- mysql索引的使用及优化方法
数据库高级管理及优化 MySQL性能优化 优化MySQL数据库是数据库管理员和数据库开发人员的必备技能.优化MySQL,一方面是找出系统的瓶颈,提高MySQL数据库整体的性能:另一方面是合理设计结构和 ...
- 常用的webpack优化方法
1. 前言 关于webpack,相信现在的前端开发人员一定不会陌生,因为它已经成为前端开发人员必不可少的一项技能,它的官方介绍如下: webpack 是一个模块打包器.webpack的主要目标是将 J ...
随机推荐
- MySQL单表存储上限
-------------- mysql的上限不是单纯的根据内容的大小决定的.跟数据的条数也有关系. 可以把mysql理解成一个服务器.处理数据的通道的流量有限.(这段瞎编的) MySQL本身并没有对 ...
- 计算机网络复习小结(3)-IPv4
IPv4分组 一个IP分组由首部和数据两部分组成,首部前一部分的长度固定,共20B,是所有IP分组必须具有的.在IP数据报首部中有三个关于长度的标记,一个是首部长度,一个是总长度,一个是片偏移,基本单 ...
- elasticsearch 根据主键_id更新部分字段
package com.better517na.ebookingbusiservice.helper;import com.alibaba.fastjson.JSON;import com.aliba ...
- maven父子项目,由于pom文件中的<packaging>pom</packaging>导致报数据源配置错误
啊啊啊~~~ 又是踩坑的一天!!! 我在子模块中进行开发,然后子模块的pom文件中也写了<packaging>pom</packaging>导致报数据源配置错误.具体内容如下图 ...
- SQL注入绕过某waf的详细过程。
0x00起因 看到大家都有绕waf的payload,想了想,这样下去不行啊.总不能找人家要吧,于是我开启了电脑,开始我的bypass之路. 0x01过程 准备完毕后,开始,首先判断注入and 1=1 ...
- Vue.sync修饰符与this.$emit('update:xxx', newXXX)
Vue通过prop进行双向数据绑定.子组件数据变化,一般只能通过 this.$emit(func, val) 回调父组件函数来传值给父组件. Vue2.3版本引入sync,作为一个事件绑定语法糖,当子 ...
- 【闫式dp分析法】
- centos mail 发邮件
1.安装mailx yum -y install mailx 2. /etc/mail.rc 最后增加邮件配置如 set smtp=smtp.qq.comset smtp-auth=loginset ...
- api进阶Day2(低级流)文件流的输出流、读取流。向文件中写入文本数据、读取文件中的字符串、用lambda表达式创建文件过滤器。
文件流:输出流: package io; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...
- vscode 一些扩展的推荐(前端)
- `Auto Rename Tag`:成对修改 HTML 标签名 - `Bracket Pair Colorizer`:括号匹配高亮 - `Color Highlight`:显示颜色代码的颜色 - ...