飞豹客 · 课能看,资料也能带走
飞豹客后端开发 会员免费

使用 Next.js、React、Tailwind 和 Shadcn 构建的实时聊天应用

这是一门用 Next.js 全家桶做一个完整即时通讯产品的实战课。它要解决的不是"我会不会写组件",而是"我能不能独立交付一个带账号体系、能实时收发消息、能上线给别人用的 Web 应用"。如果你之前只跟着教程做过 Todo List 或者博客首页,那从"能跑起来"到"能给别人用"中间那一大段,正是这

单课价¥40.90新品 上架
会员价 会员免费开通会员后本篇可直接下载套餐详情
213 人关注 更新于 2026-03-25 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

会员可免费下载本篇月会员、年会员、永久会员可免费领取。

开通会员 ›
购买本课销量 0 · 永久有效
会员价 · 单课标价 ¥40.90

会员 · 按档位

永久免费可领
年免费可领
月免费可领

游客按标价购买,不享受上表折扣。

支付成功后自动发放网盘链接,链接失效可找客服免费补

正版保障 极速发货 售后无忧

这是一门用 Next.js 全家桶做一个完整即时通讯产品的实战课。它要解决的不是"我会不会写组件",而是"我能不能独立交付一个带账号体系、能实时收发消息、能上线给别人用的 Web 应用"。如果你之前只跟着教程做过 Todo List 或者博客首页,那从"能跑起来"到"能给别人用"中间那一大段,正是这门课覆盖的范围。

它具体覆盖哪些工作场景

课程围绕一个真实的聊天产品展开,涉及的功能点都是这类应用绕不开的:用户注册登录与好友关系、一对一和多人群组会话、消息实时推送、已读回执、文件与图片上传、表情选择、音视频通话,最后还有暗色模式、PWA 发布和正式部署。这些不是孤立的练习题,而是同一套代码库里逐步叠加的模块——加好友会影响会话列表的数据结构,已读回执会影响消息状态的存储方式,音视频又会牵扯到信令和媒体权限。学完之后你面对"做一个内部沟通工具""给产品加个客服聊天入口"这类需求时,知道该从哪一层动手。

适合什么基础,哪里可以先跳过

前置要求大致是:能读懂 JavaScript 的异步写法,知道 React 的组件、状态和副作用是怎么回事,HTML 和 CSS 不陌生。课程里有一段 Next.js 基础内容是标注为可选的,如果你已经用过 App Router 或者别的元框架,可以直接跳到项目搭建部分;如果完全没用过,建议老老实实看完,否则后面路由和渲染方式的处理会一头雾水。数据库和实时通信这一块默认你没有太多经验,跟着做即可,但需要你愿意花时间理解数据是怎么存的、订阅是怎么建立的,而不是只把代码复制过去跑通。

建议的推进顺序和练习方式

比较稳的节奏是:先走完项目搭建和布局导航,把整个应用的外壳和页面结构立起来;再进入会话与好友模块,这时候你会第一次接触到数据模型的设计,值得停下来想清楚表结构和字段含义;之后是实时消息、已读回执、上传和表情这些交互细节;最后再处理暗色模式、音视频和部署发布。每加一个功能,建议自己先动手改一处再对照参考实现,比如把消息列表的排序规则换一种写法,或者给上传加上类型校验。

资料本身是配套视频和代码,不要只看不动手。更有效的用法是:看完一个模块后关掉视频,自己从零把那部分逻辑重写一遍,卡住了再回去查。部署那一节尤其要认真跟,把项目真正发布到一个可访问的地址上,这会让前面所有功能的意义变得具体。学完之后,你应该能独立从零搭出一个带登录、实时消息和文件传输的聊天应用,并把它部署上线;至于能不能改成别的形态,比如社区私信或在线客服,就看你愿不愿意在数据模型上再动一次手了。

课程目录

课程目录52 集
  • 📁 使用 Next.js、React、Tailwind 和 Shadcn 构建的实时聊天应用  📁 14. AudioVideo call  📁 9. Groups  📁 13. File upload  📁 3. NextJS Basics (optional)  📁 15. Publishing Progressive Web App  📁 5. Layout and Navigation  📁 15. Publishing Progressive Web App  📁 2. Project Setup  📁 1. Introduction  📁 12. Emoji picker  📁 6. Dark Mode  📁 7. Adding Friends  📁 10. Read receipts  📁 8. Conversations  📁 11. Build & Deploy  📁 5. Layout and Navigation  📁 4. Database & Auth setup    📄 2. Rendering audiovideo calls--.en.srt    📄 2. Rendering audiovideo calls--.en_CN.srt    📄 3. Rendering call status--.mp4
  •    📄 3. Rendering call status--.en.srt    📄 1. LiveKit setup--.en.srt    📄 1. LiveKit setup--.en_CN.srt    📄 1. LiveKit setup--.mp4
  •    📄 2. Rendering audiovideo calls--.mp4
  •    📄 3. Rendering call status--.en_CN.srt    📄 1. Introduction to NextJS--.mp4
  •    📄 2. Routing in NextJS--.mp4
  •    📄 3. Client vs Server components--.mp4
  •    📄 2. Routing in NextJS--.en_CN.srt    📄 3. Client vs Server components--.en.srt    📄 1. Introduction to NextJS--.en.srt    📄 1. Introduction to NextJS--.en_CN.srt    📄 2. Routing in NextJS--.en.srt    📄 3. Client vs Server components--.en_CN.srt    📄 2. Adding imagevideofile uploads--.en.srt    📄 2. Adding imagevideofile uploads--.mp4
  •    📄 3. Rendering image and video messages--.mp4
  •    📄 3. Rendering image and video messages--.en_CN.srt    📄 4. Rendering file messages--.en_CN.srt    📄 1. Setting up uploadthing--.en.srt    📄 1. Setting up uploadthing--.mp4
  •    📄 4. Rendering file messages--.en.srt    📄 4. Rendering file messages--.mp4
  •    📄 1. Setting up uploadthing--.en_CN.srt    📄 2. Adding imagevideofile uploads--.en_CN.srt    📄 3. Rendering image and video messages--.en.srt    📄 2. Add dialog for creating groups--.en_CN.srt    📄 5. Leave group--.mp4
  •    📄 4. Delete group--.en.srt    📄 3. Rendering groups in conversations list--.mp4
  •    📄 3. Rendering groups in conversations list--.en.srt    📄 1. Backend for creating groups--.en.srt    📄 5. Leave group--.en_CN.srt    📄 1. Backend for creating groups--.en_CN.srt    📄 4. Delete group--.mp4
  •    📄 3. Rendering groups in conversations list--.en_CN.srt    📄 4. Delete group--.en_CN.srt    📄 1. Backend for creating groups--.mp4
  •    📄 2. Add dialog for creating groups--.mp4
  •    📄 2. Add dialog for creating groups--.en.srt    📄 5. Leave group--.en.srt    📄 2. shadcnui Setup--.en.srt    📄 1. NextJS Project Setup--.en.srt    📄 2. shadcnui Setup--.en_CN.srt    📄 2. shadcnui Setup--.mp4
  •    📄 1. NextJS Project Setup--.en_CN.srt    📄 1. NextJS Project Setup--.mp4
  •    📄 1. Setting up frontend routes--.en.srt    📄 1. PWA and manifest setup--.en_CN.srt    📄 3. Build and deploy to desktop and mobile--.en_CN.srt    📄 2. Metadata and Next config setup--.mp4
  •    📄 2. Metadata and Next config setup--.en_CN.srt    📄 2. Metadata and Next config setup--.en.srt    📄 3. Build and deploy to desktop and mobile--.mp4
  •    📄 1. PWA and manifest setup--.en.srt    📄 3. Build and deploy to desktop and mobile--.en.srt    📄 1. PWA and manifest setup--.mp4
  •    📄 1. Adding theme switching--.en_CN.srt    📄 1. Adding theme switching--.mp4
  •    📄 1. Adding theme switching--.en.srt    📄 1. Creating attachments popover--.en_CN.srt    📄 2. Adding the emoji picker--.en_CN.srt    📄 3. Connecting emoji picker to chat input--.en_CN.srt    📄 3. Connecting emoji picker to chat input--.en.srt    📄 1. Creating attachments popover--.mp4
  •    📄 3. Connecting emoji picker to chat input--.mp4
  •    📄 2. Adding the emoji picker--.mp4
  •    📄 1. Creating attachments popover--.en.srt    📄 2. Adding the emoji picker--.en.srt    📄 2.1 realtime-chat-app.zip
  •    📄 1. Introduction--.en_CN.srt    📄 2. Before we begin.html
  •    📄 1. Introduction--.en.srt    📄 1. Introduction--.mp4
  •    📄 6. Accept friend request--.en_CN.srt    📄 4. Showing pending request count--.mp4
  •    📄 4. Showing pending request count--.en.srt    📄 6. Accept friend request--.mp4
  •    📄 4. Showing pending request count--.en_CN.srt    📄 5. Deny friend request--.en_CN.srt    📄 2. Add dialog for sending requests--.en.srt    📄 1. Backend for creating friend request--.mp4
  •    📄 5. Deny friend request--.mp4
  •    📄 3. Render list of requests--.en.srt    📄 2. Add dialog for sending requests--.en_CN.srt    📄 3. Render list of requests--.en_CN.srt    📄 5. Deny friend request--.en.srt    📄 6. Accept friend request--.en.srt    📄 3. Render list of requests--.mp4
  •    📄 1. Backend for creating friend request--.en.srt    📄 1. Backend for creating friend request--.en_CN.srt    📄 2. Add dialog for sending requests--.mp4
  •    📄 1. Build & deploy to Vercel--.en_CN.srt    📄 1. Build & deploy to Vercel--.en.srt    📄 1. Build & deploy to Vercel--.mp4
  •    📄 2. Adding a custom domain--.en_CN.srt    📄 2. Adding a custom domain--.en.srt    📄 2. Adding a custom domain--.mp4
  •    📄 2. Adding read receipts to conversations--.mp4
  •    📄 3. Showing unseen messages count--.en.srt    📄 3. Showing unseen messages count--.en_CN.srt    📄 2. Adding read receipts to conversations--.en.srt    📄 1. Backend for read receipts--.en.srt    📄 2. Adding read receipts to conversations--.en_CN.srt    📄 3. Showing unseen messages count--.mp4
  •    📄 1. Backend for read receipts--.mp4
  •    📄 1. Backend for read receipts--.en_CN.srt    📄 3. Chat input and sending messages--.mp4
  •    📄 2. Render active conversation--.mp4
  •    📄 4. Rendering conversation messages--.en_CN.srt    📄 5. Render last message in conversations list--.mp4
  •    📄 1. Render list of conversations--.en_CN.srt    📄 2. Render active conversation--.en.srt    📄 6. Removing friends--.en.srt    📄 6. Removing friends--.mp4
  •    📄 2. Render active conversation--.en_CN.srt    📄 6. Removing friends--.en_CN.srt    📄 3. Chat input and sending messages--.en_CN.srt    📄 4. Rendering conversation messages--.mp4
  •    📄 3. Chat input and sending messages--.en.srt    📄 1. Render list of conversations--.mp4
  •    📄 1. Render list of conversations--.en.srt    📄 4. Rendering conversation messages--.en.srt    📄 5. Render last message in conversations list--.en.srt    📄 5. Render last message in conversations list--.en_CN.srt    📄 1. Setting up frontend routes--.en_CN.srt    📄 3. Items list and conversation container--.en_CN.srt    📄 2. Sidebar & adding navigation--.en_CN.srt    📄 1. Setting up frontend routes--.mp4
  •    📄 3. Items list and conversation container--.en.srt    📄 2. Sidebar & adding navigation--.mp4
  •    📄 3. Items list and conversation container--.mp4
  •    📄 2. Sidebar & adding navigation--.en.srt    📄 2. Clerk Auth Setup--.mp4
  •    📄 4. Storing user data in Convex DB--.en.srt    📄 4. Storing user data in Convex DB--.mp4
  •    📄 3. Integrating Convex with Clerk--.mp4
  •    📄 2. Clerk Auth Setup--.en_CN.srt    📄 3. Integrating Convex with Clerk--.en.srt    📄 4. Storing user data in Convex DB--.en_CN.srt    📄 1. Convex DB Setup--.mp4
  •    📄 1. Convex DB Setup--.en.srt    📄 1. Convex DB Setup--.en_CN.srt    📄 3. Integrating Convex with Clerk--.en_CN.srt    📄 2. Clerk Auth Setup--.en.srt