课程介绍
这门课面向想做 WebRTC 服务端的 C++ 开发者,从服务器基础讲起。先回顾 C++ 的类、继承、多态和内存模型,再讲信号、后台进程与 daemon,TCP/UDP 服务端与客户端的实现,fork、select、epoll 与 libevent 构建高性能网络服务器;随后讲 IP、TCP 三次握手四次挥手、ACK 机制与滑动窗口,UDP 与 RTP,以及实时通信中 TCP 与 UDP 的取舍。
协议部分讲 RTP 包、RTCP 头与各类报文(SR、RR、SDES、BYE、APP、FB),STUN 协议与 ICE 工作原理,加解密、OpenSSL、DTLS 和 TLS-SRTP,以及 SDP 协议与 WebRTC 的媒体协商。
服务器部分比较 Mesh、MCU、SFU 架构和 Licode、Janus、Medooze、Mediasoup 四类流媒体服务器,演示 mediasoup 的运行环境与 Demo 部署、信令系统与 server.js、room.js 的剖析和调试,最后深入 mediasoup 源码:库架构、启动流程、进程间通信、channel 创建、主业务流程、连接创建与数据流转,以及大规模部署方案。
网盘说明:本课程为百度网盘资源。
课程目录
第1章 课程导学与准备工作
1-2 导学.mp4
第2章 C++语言基础回顾
2-1 C++知识回顾之helloworld.mp4
2-2 类的定义和实现.mp4
2-3 类的使用.mp4
2-4 命名空间.mp4
2-5 继承1.mp4
2-6 继承2.mp4
2-7 多态.mp4
2-8 内存地址空间与指针.mp4
2-9 堆空间与栈空间.mp4
2-10 深拷贝与浅拷贝.mp4
第3章 服务器基础编程
3-1 一个最简单的服务器.mp4
3-2 Linux系统下的信号.mp4
3-3 几个重要的信号.mp4
3-4 信号的发送与处理.mp4
3-5 通过 sigaction 安装信号.mp4
3-6 以fork的方式创建后台进程.mp4
3-7 以daemon方式切换到后台.mp4
第4章 网络编程基础
4-1 TCPServer实现原理.mp4
4-2 TCPServer的实现1.mp4
4-3 TCPServer的实现2.mp4
4-4 TCP客户端的实现.mp4
4-5 作业-UDP服务端与客户端的实现.mp4
4-6 作业-实现一个TCPUDP网络服务器.mp4
第5章 异步I
5-1 通过fork的方式实现高性能网络服务器.mp4
5-2 通过select实现高性能服务器.mp4
5-3 再论select函数.mp4
第6章 epoll实现高性能服务器
6-1 epoll基本知识.mp4
6-2 epoll高性能服务器的实现1.mp4
6-3 epoll高性能服务器的实现2.mp4
6-4 epoll+fork进行性能优化.mp4
第7章 libevent实现高性能网络服务器
7-1 比较有名的异步IO处理库的介绍.mp4
7-2 libevent实现高性能服务器.mp4
7-3 作业-libuv实现对UDP的处理.mp4
第8章 TCP
8-1 IP协议详解.mp4
8-2 TCP协议详解.mp4
8-3 TCP三次握手.mp4
8-4 TCP四次挥手.mp4
8-5 TCP_ACK_机制.mp4
8-6 TCP滑动窗口.mp4
8-7 UDP与RTP.mp4
8-8 实时通信TCP_UDP的选择.mp4
8-9 TCP在实时通信中的作用.mp4
第9章 UDP
9-1 RTP包的使用.mp4
9-2 RTCP协议头的分析.mp4
9-3 RTCP PayloadType 介绍.mp4
9-4 RTCP SR 包文详解.mp4
9-5 RTCP RR SDES 报文介绍.mp4
9-6 BYE APP 报文介绍.mp4
9-7 RTCP FB 协议介绍.mp4
第10章 WebRTC协议
10-1 STUN协议介绍.mp4
10-2 STUN Message Type消息.mp4
10-3 STUN Message type详解.mp4
10-4 STUN body详解.mp4
10-5 ICE工作原理.mp4
10-6 加密解密基本概念.mp4
10-7 OpenSSL概念及使用.mp4
10-8 DTLS协议详解.mp4
10-9 TLS-SRTP协议讲解.mp4
第11章 SDP协议与WebRTC媒体协商
11-1 媒体协商过程.mp4
11-2 SDP协议简介.mp4
11-3 SDP描述信息.mp4
11-4 SDP关键字段的含义及其使用.mp4
11-5 WebRTC中的SDP.mp4
11-6 WebRTC中SDP各字段含义详解.mp4
第12章 各流媒体服务器的比较
12-1 多人互动架构方案.mp4
12-2 Mesh架构模型详解.mp4
12-3 MCU架构模型详解.mp4
12-4 SFU架构模型详解.mp4
12-5 Licode流媒体服务器架构和特点.mp4
12-6 Janus流媒体服务器的架构及特点.mp4
12-7 Medooze流媒体服务器架构及特点.mp4
12-8 Mediasoup流媒体服务器架构及特点.mp4
第13章 mediasoup服务器的布署与使用
13-1 Mediasoup的运行环境.mp4
13-2 Mediasoup Demo的布署.mp4
13-3 通过Nodejs实现HTTP服务.mp4
13-4 HTTPS基本知识.mp4
13-5 通过WWW服务发布mediasoup客户端代码.mp4
13-6 作业-客户端是如何与信令服务建立连接的.mp4
第14章 mediasoup的信令系统
14-1 mediasoup-demo整体分析.mp4
14-2 JavaScript基本语法一.mp4
14-3 JavaScript基本语法二.mp4
14-4 JavaScriptES6高级特性.mp4
14-5 Promise与EventEmitter详解.mp4
14-6 剖析serverjs.mp4
14-7 剖析roomjs.mp4
14-8 如何调试MediasoupDemo.mp4
14-9 运行时查看Mediasoup的核心信息.mp4
第15章 mediasoup源码分析
15-1 mediasoup库的架构讲解.mp4
15-2 Mediasoup_JS_的作用.mp4
15-3 WebRTC中的C++类关系图.mp4
15-4 Mediasoup启动详解.mp4
15-5 匿名管道进程间通信的原理.mp4
15-6 实战通过socketpair进行进程间通信.mp4
15-7 mediasoup下channel创建的详细过程.mp4
15-8 mediasoup中的消息确信与发送事件机制.mp4
15-9 mediasoup的主业务流程1.mp4
15-10 mediasoup的主业务流程2.mp4
15-11 mediasoup连接的创建1.mp4
15-12 mediasoup连接的创建2.mp4
15-13 mediasoup数据流转1.mp4
15-14 mediasoup数据流转2.mp4
15-15 WebRTC流媒体服务器大规模布署方案.mp4
第16章 课程总结
16-1 小结.mp4
配套资料
mediaserver