本章对本门课程进行全局性介绍,包括课程的核心技术点、课程收获、课程价值、课程特点等,同时对课程的整体安排也会做详细的讲解,最后会对课程项目最终实现的效果进行演示,方便大家对课程有一个直观的了解,以便更好的学习本门课程。
本章重点讲解事件驱动编程相关的基础理论,并对业界一些知名和典型的实践案例如nginx、redis等做深入分析,帮助一些初学者对事件驱动编程有一个初步的了解,为后续的深入学习打下一定的理论基础。
本章从几个问题出发,结合个人的实践经验,重点探讨了如何选择合适的网络框架?以及自研网络框架应该考虑哪些问题和相关的设计思路,供大家作为参考。
由于本课程是实战课程,以WebRTC屏幕共享推流为应用案例,一部分学员可能对WebRTC技术不是特别了解,本章内容旨在帮助不了解WebRTC技术的学员快速掌握相关项目背景知识,核心重点是WebRTC通信流程,以方便后续更好的完成整个实战项目。
本章主要基于Golang,详细介绍如何设计一个轻量级的http开发框架,包括基础架构、url路由,日志模块、配置模块、https和静态资源访问支持等等,对于一些简单的api模块,不太适合使用特重的开源框架,可以考虑本章节的实现,同时可以根据需要自由灵活扩展,通过本章课程的学习,可以获得http的开发框架设计技术
在实际的业务场景当中,后台UI模块和后台服务之间需要通过网络通信来获取数据,这里面就涉及到服务端间的rpc通信,本章详细介绍RPC通信的设计方法和具体实现,包括协议设计、接口设计和负载均衡策略。通过本章课程的学习,可以获得rpc的通用设计方法和设计技巧。
本章课程详细介绍事件驱动编程的基本概念以及优缺点,然后带领大家实现事件驱动网络编程框架的基础架构,并添加日志组件和配置系统组件。通过本章课程的学习,可以掌握一个标准的后台服务的核心构成。
本章是事件驱动网络编程的核心部分,会引入高性能事件驱动库libev,并进行详细的介绍。同时基于libev重新封装一个更加易用的EventLoop类,通过该类可以方便的创建、启动、停止和删除IO事件以及定时器事件,这些事件是后续整个系统运转的基础。通过本章课程的学习,可以获得事件循环的综合运用技巧。
本章课程重点讲解网络数据的读写,不同于阻塞式IO数据读取,非阻塞IO数据读取需要一些特殊处理。线程间通信通过管道的方式,用无锁队列传递消息体内容。通过本章课程的学习,可以获得非阻塞网络IO的读写技术。
本章课程讲解多个Server协同工作的情况,比如一个Server负责信令的处理,一个Server负责音视频数据的分发,两者之间通过管道进行通信。通过本章课程的学习,可以获得多Server的协同处理技术,以及讲解响应结果的处理,可以有两种方式,一种方式是同步处理,等待内部处理完毕,返回结果。一种方式是异步处理,先直接返回成功,内部慢慢处理等。
本章为拓展内容,在课程实战项目的基础之上,又拓展了长连接消息系统和音视频分发系统两个典型的应用场景,详细介绍了如何使用本门课程的框架技术,来实现这两个场景的核心功能,帮助大家进一步提升技术视野。
选课、学习遇到问题?
扫码添加指导老师 1V1 帮助你!
添加后老师会第一时间解决你的问题