这门课不是讲 Swoole 的语法手册,而是直接拿两个真实场景逼你把 Swoole 的异步、WebSocket、Redis 协同用顺。如果你已经知道 Swoole 能做什么,但一到项目里就不知道怎么把协程、连接池、事件广播这些概念串起来,那它正好补上这块缺口。

你要补的能力缺口

很多学习者学完 Swoole 基础后,卡在“会写单机 demo,不会做多人交互”。比如:多个用户同时选座,怎么保证一个座位被抢后其他人立刻看到?直播弹幕怎么做到不刷新页面就实时上屏?这些问题的共性是:你需要同时处理长连接、状态同步和并发写入。这门课用两个项目逼你动手解决这些问题。第一个项目是电影院选座,核心是 WebSocket 广播和 Redis 存储;第二个项目是视频直播弹幕,核心是播放器与后端通信、弹幕推送。做完这两个,你对 Swoole 的“实时”二字会有肌肉记忆。

适合什么基础

建议你至少写过 Swoole 的入门案例,知道协程、Server、WebSocket 的基本写法,但不需要精通。如果连 HTTP 服务怎么起都还没跑通过,先补基础再来看。另外,你需要一点 JavaScript 和 HTML 基础,因为前端要用到 WebSocket 客户端和播放器。Redis 的简单命令也得认识,课程里会直接用它存座位状态,不会从头讲 Redis。

建议先看哪几块

如果你时间有限,别按顺序平推。先看选座项目的前几节,把静态文件引入、WebSocket 连接建立、选座成功通知所有客户端这条链路走通。这一步能把“服务端怎么把数据推给所有浏览器”搞明白。然后直接跳到“已选座位存到 Redis”和“已购买座位的实时展示”,这里会教你如何用 Redis 做状态共享,避免每个客户端各存一份导致数据不一致。看完这部分,再回头看直播弹幕项目,重点是理解播放器怎么和 Swoole 服务端对接,弹幕消息如何复用 WebSocket 通道。

学完能独立做什么

学完这两个项目,你能独立搭一个支持多人实时交互的小应用。比如会议室预订系统,有人锁定一个座位,其他人在线看到变红;或者一个直播间,观众发弹幕,所有进入房间的人都能实时看到。你还会知道怎么把 Redis 当作状态中心,处理并发选座时的冲突,以及怎么用 Swoole 的定时任务或推送机制做心跳检测。这些能力可以直接迁移到在线协作、实时监控、游戏房间等场景。

资料怎么配合练习

不要只看视频,每节都跟着敲。先把选座项目的服务端跑起来,再用两个浏览器窗口模拟不同用户,验证选座通知是否同步。然后故意停掉 Redis,观察程序哪里报错,加深对状态存储的理解。直播弹幕部分,先确保播放器能正常播视频,再逐步加上弹幕推送。资料包里的代码只是参考,建议你先自己写一遍,再对照修改。每个项目做完后,试着改一个需求:比如选座加个倒计时释放座位,或者弹幕加个颜色过滤。能改得动,才算真正吸收了。

课程目录

1-1 [swoole实战电影院选座实时展示] swoole实战项目介绍以及前期准备 (06:47)
1-2 [swoole实战电影院选座实时展示] 静态文件引入以及websocket连接 (12:01)
1-3 [swoole实战电影院选座实时展示] 选座成功状态通知所有客户端 (11:18)
1-4 [swoole实战电影院选座实时展示] 获取选中座位数据并处理 (08:23)
1-5 [swoole实战电影院选座实时展示] 已选座位存到redis (09:24)
1-6 [swoole实战电影院选座实时展示] 已购买座位的实时展示以及总结 (22:33)
2-1 [swoole实战视频直播弹幕] 视频直播技术简单介绍 (19:26)
2-2 [swoole实战视频直播弹幕] dplayer引入使用播放视频 (17:23)
2-3 [swoole实战视频直播弹幕] 播放器配置播放hls直播视频 (12:11)
2-4 [swoole实战视频直播弹幕] websocket实现弹幕发送到所有客户端 (20:09)
3-1 [swoole实战多进程消息队列协程爬链家租房信息] swoole实战之获取租房的标题以及地址 (25:02)
3-2 [swoole实战多进程消息队列协程爬链家租房信息] swoole实战获取租房信息面积户型月租 (13:20)
3-3 [swoole实战多进程消息队列协程爬链家租房信息] swoole实战租房信息放到队列 (08:27)
3-4 [swoole实战多进程消息队列协程爬链家租房信息] swoole实战协程MySQL插入租房数据 (16:10)
3-5 [swoole实战多进程消息队列协程爬链家租房信息] swoole实战多进程消息队列协程使用分析 (17:49)