这门课解决什么工作场景
直播、点播、在线课堂这类业务背后,核心痛点是海量并发连接与音视频数据的高效转发。传统方案往往依赖昂贵的服务器集群或第三方云服务,一旦业务规模扩张,带宽与扩容成本会直线上升。这门课聚焦的,正是用 Go 语言从零自研流媒体服务器网站。Go 的 goroutine 并发模型天生适合处理高吞吐的网络请求,能在有限硬件下撑住大量长连接。如果你在工作中需要搭建内部直播系统、自建视频点播平台,或者想从应用层开发转向底层音视频服务,这门课提供的自建思路能帮你摆脱对第三方云服务的强依赖,把核心流转链路握在自己手里。
适合什么基础与学习建议
资料定位于有基础语法概念的实操型开发者。如果你完全没写过 Go 的 Web 接口,直接看协议转发会非常吃力。建议先重点过一遍前期的 Web 交互模块:弄懂路由分发怎么处理请求、Postman 怎么模拟前端发 Post 请求、Ajax 与后端怎么做数据交接。这几块看似是基础铺垫,实则是后续把流媒体核心功能封装成完整网站的关键。只有把前端请求、后端接口、数据库连接这条链路跑通,后续叠加音视频推拉流逻辑时,你才能清楚数据到底在哪一层流转。对于已有 Go Web 开发经验的同学,可以直接跳到流媒体协议实现部分,对照源码查漏补缺。
学完能独立做什么与资料配合
跟着资料走完全流程,你能独立产出一套支持音视频直播与点播的完整网站系统。这意味你不仅能写出处理 HTTP 请求的常规业务后端,还能实现流媒体协议的推流与拉流,把前端播放页面、后端接口与底层流媒体服务打通。练习时,不要只用眼睛看视频,务必把资料里的代码段在本地跑起来。先用 Postman 暴力测试接口参数校验,再写个简单前端页面发 Ajax 请求验证数据交互,最后启动推流软件把视频推到自己写的服务器上,用播放器拉流验证延迟和画质。遇到卡顿就回头查并发处理逻辑,遇到黑屏就查协议握手。这样一套跑下来,你掌握的就不只是零散代码片段,而是完整的流媒体后端工程闭环。
随着直播、短视频、在线教育等行业的爆发,流媒体技术成为核心支撑。Go语言凭借“高并发、低延迟、轻量高效、原生支持网络编程”的特性,成为开发流媒体服务器的优选语言——其goroutine并发模型能轻松应对海量用户连接,丰富的标准库与第三方库可快速实现各类流媒体协议。本文将带你从0开始,掌握用Go语言开发流媒体服务器网站的全流程,最终实现一个支持音视频直播、点播的完整网站系统。
课程目录
* 01 基础知识储备/
* 01 01 单元测试连接数据库 (25.08 MB), 11:16
* 02 02 httprouter基本使用 (41.54 MB), 16:25
* 03 03 postman模拟浏览器post请求 (10.81 MB), 03:35
* 04 04 ajax给服务器发送请求(上) (123.05 MB), 11:40
* 05 05 ajax给服务器发送请求(下) (149.01 MB), 13:24
* 02 项目整体结构分析/
* 01 01 项目整体功能介绍 (9.17 MB), 04:12
* 02 02 项目结构拆分 (9.86 MB), 04:26
* 03 03 数据库表创建 (16.34 MB), 05:38
* 03 用户session处理/
* 01 01 session增加删除 (46.79 MB), 17:39
* 02 02 根据id查询session (39.11 MB), 13:53
* 03 03 查询所有session (30.54 MB), 11:11
* 04 04 session业务逻辑分析&生成session (40.34 MB), 16:39
* 05 05 判断session是否过期 (32.23 MB), 11:59
* 06 06 读取所有session到内存 (7.49 MB), 02:15
* 07 07 区分用户有没有登录 (21.75 MB), 08:53
* 08 08 装饰器模式 (60.46 MB), 21:27
* 09 09 日志打印2次的补充讲解 (6.62 MB), 02:14
* 10 10 获取客户端请求中sessionId (15.53 MB), 07:05
* 11 11 校验用户session是否过期 (14.34 MB), 05:16
* 12 12 总结回顾 (6.80 MB), 03:09
* 04 用户注册登录/
* 01 01 监听浏览器发送请求并获取相应字段 (19.39 MB), 07:07
* 02 02 Restful风格请求 (14.78 MB), 05:13
* 03 03 定义错误结构体和响应码 (18.15 MB), 08:14
* 04 04 处理请求参数异常 (50.28 MB), 19:17
* 05 05 错误结构体封装 (17.91 MB), 06:54
* 06 06 用户信息dao层处理 (24.40 MB), 09:37
* 07 07 用户注册后生成session (40.75 MB), 14:02
* 08 08 用户注册测试 (23.44 MB), 08:02
* 09 09 接收用户登录请求 (35.43 MB), 12:21
* 10 10 查询数据库判断是否为登录用户 (144.81 MB), 10:40
* 11 11 总结回顾 (5.86 MB), 02:34
* 05 限制上传视频/
* 01 01 搭建视频处理服务 (26.73 MB), 10:02
* 02 02 定义结构体记录当前链接数和最大链接数 (25.13 MB), 10:19
* 03 03 管道限制链接数 (23.24 MB), 08:55
* 04 04 释放链接 (11.29 MB), 04:12
* 05 05 中间件限制最大链接数 (30.00 MB), 10:26
* 06 06 访问视频 (44.93 MB), 14:21
* 07 07 限制播放链接数测试 (12.53 MB), 01:59
* 08 08 总结回顾 (7.64 MB), 03:44
* 06 视频管理/
* 01 01 添加上传视频测试页面 (21.30 MB), 07:13
* 02 02 上传视频思路分析 (11.13 MB), 04:05
* 03 03 上传视频请求 (55.63 MB), 18:55
* 04 01 删除视频id记录 (30.48 MB), 12:44
* 05 02 获取多条需删除记录 (17.55 MB), 06:00
* 06 03 将待删除视频id插入数据库 (26.06 MB), 09:27
* 07 4 分析删除视频需求 (18.90 MB), 07:57
* 08 5 读取删除数据 (20.83 MB), 07:43
* 09 6 管道中读取数据进行删除操作 (38.96 MB), 14:04
* 10 7 删除异常的返回 (23.59 MB), 08:09
* 11 8 分析生产者消费者的各种状态 (15.51 MB), 06:21
* 12 9 任务结构体定义&生产者开启 (24.77 MB), 10:13
* 13 10 生成和消费状态切换(上) (215.75 MB), 14:07
* 14 10 生成和消费状态切换(下) (157.98 MB), 10:56
* 15 11 生成和消费过程中异常处理 (13.46 MB), 03:44
* 16 12 定时任务开启 (40.36 MB), 14:45
* 17 13 定时任务删除视频数据测试 (18.03 MB), 07:18
* 18 14 总结回顾 (15.72 MB), 05:25
* 07 前端服务请求转发/
* 01 1 前端服务作用 (4.66 MB), 01:53
* 02 2 约束请求体 (19.04 MB), 08:28
* 03 3 web前端服务校验post请求 (30.64 MB), 11:26
* 04 4 获取web服务请求体 (18.89 MB), 06:14
* 05 5 验证请求体是否合法 (30.56 MB), 11:10
* 06 6 请求转发实现 (56.61 MB), 19:12
* 07 7 post请求转发测试 (23.10 MB), 07:52
* 08 8 get请求转发 (15.50 MB), 04:40
* 09 9 转发请求回顾 (8.34 MB), 03:18
* 08 cookie判断用户登录状态/
* 01 01 切换注册和登录界面 (36.45 MB), 12:05
* 02 02 获取注册的账号密码 (28.11 MB), 09:08
* 03 03 发送ajax请求 (34.94 MB), 12:05
* 04 04 发送请求存储cookies (76.32 MB), 23:53
* 05 05 获取cookie结果 (34.65 MB), 11:54
* 06 06 注册成功后续逻辑处理 (54.09 MB), 17:02
* 07 07 注册成功后显示用户名称 (21.29 MB), 06:56
* 08 08 用户登录后的重定向 (46.62 MB), 16:04
* 09 09 用户登录请求 (28.50 MB), 08:15
* 10 10 用户登录请求测试 (16.35 MB), 05:53
* 09 前台服务视频上传/
* 01 01 数据库插入删除视频数据 (48.96 MB), 18:20
* 02 02 查询上传视频列表数据 (25.80 MB), 10:50
* 03 03 视频列表展示 (30.34 MB), 08:29
* 04 04 处理上传视频路由请求 (51.47 MB), 16:28
* 05 05 ajax发送网络请求 (46.22 MB), 13:38
* 06 06 获取用户信息 (37.96 MB), 11:39
* 07 07 发送请求给获取用户信息给uid赋值 (63.15 MB), 19:06
* 08 08 获取用户uid测试 (3.50 MB), 01:12
* 09 09 视频信息插入数据库测试 (13.56 MB), 05:01
* 10 10 上传视频端口切换 (26.91 MB), 08:11
* 11 11 上传视频ajax请求 (30.12 MB), 09:38
* 12 12 上传视频测试 (12.61 MB), 04:02
* 13 13 获取视频列表 (123.79 MB), 08:23
* 14 14 ajax请求获取视频列表 (21.08 MB), 06:08
* 15 15 拼接列表页面 (127.09 MB), 11:49
* 16 16 播放列表第一个视频 (36.82 MB), 10:28
* 17 17 发送ajax请求 (37.51 MB), 10:29
* 18 18 删除视频 (39.49 MB), 09:35
* 19 19 点击播放视频 (17.02 MB), 04:55
* 20 20 视频删除验证 (3.63 MB), 00:55
* 10 前台服务评论处理/
* 01 1 评论数据库操作 (27.00 MB), 08:16
* 02 02 监听评论请求 (31.59 MB), 09:00
* 03 03 发送ajax请求提交评论 (53.96 MB), 14:28
* 04 04 评论列表查询 (28.04 MB), 07:30
* 05 05 评论列表展示 (33.32 MB), 08:53






