/avatar.png

Janus 的搭建与 WebRTC 使用

介绍

Janus 是由 Meetecho 开发的 WebRTC 服务器。因此,除了实现与浏览器建立 WebRTC 媒体通信、与其交换 JSON 消息以及在浏览器和服务器端应用程序逻辑之间中继 RTP/RTCP 和消息的方法之外,它本身不提供任何功能。任何特定的功能和应用程序都由服务器端插件提供,浏览器可以通过 Janus 联系以利用它们提供的功能。此类插件的示例可以是应用程序的实现,例如回声测试、会议桥、媒体记录器、SIP 网关等。

UUID(GUID)不同版本和顺序递增探究

概念

UUIDs (Universally Unique IDentifier),也称为 GUIDs (Globally 唯一标识符)。一个 UUID 是 128 位长,并且可以保证空间和时间上的唯一性。

使用 UUID 的主要原因之一是无需集中的管理,并且 UUID 的生成算法要求它支持单台每秒超过百万次的生成速率。

Javascript Date 笔记

Javascript 最常用的时间库 moment

初始化 moment

  • 从 Date 初始化
1
2
let nowDate = new Date();
console.log('1.1 从 date 初始化:', nowDate, moment(nowDate));
  • 直接初始化
1
2
let nowMoment = moment();
console.log('1.2 直接初始化:', nowMoment);
  • 从字符串初始化
1
2
const ISO8601_String = (new Date(1987, 8, 15 , 16, 15, 45)).toISOString();
console.log('1.3 从字符串初始化:', ISO8601_String, moment(ISO8601_String), new Date(Date.parse(ISO8601_String)))

格式化

  • Format 格式化输出
1
console.log('2.1 Format 格式化输出:', nowMoment.format())
  • Format 默认格式化
1
2
moment.defaultFormat = 'YYYY-MM-DD HH:mm:ss:SSSS'
console.log('2.2 Format 默认格式化输出:', nowMoment.format())
  • UTC Format 格式化输出
1
console.log('2.3 Format 格式化输出:', nowMoment.utc().format())
  • UTC Format 默认格式化
1
2
moment.defaultFormatUtc = 'YYYY-MM-DD HH:mm:ss:SSSS'
console.log('2.4 UTC Format 默认格式化输出:', nowMoment.utc().format())

Unix 时间戳

原生获取时间戳

1
console.log('3.1 原生获取时间戳:', nowDate.getTime(), new Date(nowDate.getTime()))

moment 获取时间戳

1
console.log('3.1 moment 获取时间戳:', nowMoment.unix(), moment.unix(nowMoment.unix()), moment(nowDate.getTime()))

时区

使用 Moment Timezone

Dockerfile 制作镜像上传 Docker hub

制作 Dockerfile

比如要打包 mkcert 方便以后快速制作 https 证书的镜像,可使用如下步骤,任意目录下新建一个 mkcert 目录,新建 Dockerfile 文件,写入以下 Dockerfil :

1
2
FROM homebrew/brew
RUN brew install mkcert

编译本地镜像

在刚才的 mkcert 目录下运行 docker build -t mkcert:v1 .,制作镜像

Linux 文件操作

文件夹新建

1
mkdir test

文件新建

1
touch test.st

查看文件或文件夹信息

1
ls -l test.st

修改权限

1
2
# 递归修改为最高权限
chmod -R 777 test

删除文件

1
rm -rf test

压缩文件夹

1
tar zcvf ./t1.tar.gz test

解压文件

1
2
3
4
5
# 解压到当前目录
tar zxvf t1.tar.gz

# 解压到指定目录
tar zxvf t1.tar.gz -C /test

拷贝文件

本地拷贝

1
2
3
4
5
# 拷贝文件
scp t1.tar.gz t2.tar.gz

# 拷贝文件夹
scp -r test test2

远程拷贝

1
2
3
4
# 拷贝文件
scp ubuntu@txy.frhello.com:/home/ubuntu/t1.tar.gz d:\
# 递归拷贝文件夹
scp -r ubuntu@txy.frhello.com:/home/ubuntu d:\