|
& n$ r- S* F5 W7 z1 A( @' A0 w% J( K: W- h* u0 t+ Z+ n6 @& N
第1章 课程介绍" u( O3 Z1 D/ }
本章首先让大家彻底明白通过本课程的学习具体收获有哪些?课程内容具体安排与学习建议,然后为大家简单介绍课程涉及到的技术栈等。+ a0 o$ o& t2 w8 g7 Z
1-1 课程介绍
& h* m5 g. Z: {3 a$ K# v2 F+ M5 F# s: }3 V
第2章 netty介绍与相关基础知识
( U5 h6 R3 Q0 b2 n- T8 ?# U初识netty,学习阻塞与非阻塞,同步与异步,理解BIO、NIO、AIO以及netty的线程模型6 o. K6 r' @2 R
2-1 初始netty6 j7 Q7 W- K0 {+ g" d5 B4 q% N
2-2 阻塞和非阻塞、同步和异步的概念 i5 J1 Z% o4 t, ?* _
2-3 BIO讲解- J6 l0 V5 g0 |
2-4 NIO讲解
4 U. _2 P# j" a2 Z% [2-5 BIO NIO AIO的区别与理解
2 k0 X. R/ P D9 B7 g2-6 再看netty
2 F- _0 m2 v+ R+ a* `- B7 Y2 U1 g6 u2-7 netty的三种线程模型
* r4 C; D% w" _ _) H2 u2 S) }# Y7 O$ P/ N2 T
第3章 使用netty编写第一个hello netty 服务器
" D( s% h; G1 ^; k# s8 n从零开始使用netty编写服务器,在网页访问后返回hello netty,主要对服务器启动类,channel初始化器以及助手类讲解,最后会对channel的生命周期进行讲解/ U# m* X) t6 [( @$ O
3-1 使用maven构建netty基础依赖
# w9 P, u/ q) P. `+ j' H3-2 构建hello服务器
3 n( R0 `" K z8 s t; F0 V3-3 为channel设置初始化器
_5 c6 Q5 D5 K! J3 c9 |) u. d3-4 编写自定义助手类
+ i9 i }9 u. C. F# q3-5 hello服务器启动与讲解
/ H3 U6 Z: }+ U7 \& M/ A% f" F3-6 netty生命周期, t L3 h. k( G/ B5 C
L1 J: t a( ?- _1 E( i3 @第4章 使用netty构建websocket服务器
, ]9 s1 r0 L* m; V* a+ T/ J3 I理解实时通信,使用netty的websocket编写服务端启动类、子处理器以及助手类。 理解JS相关的websocket api,简单使用hbuilder编写通信页面与netty交互并且使用web浏览器与手机端浏览器进行测试数据交互, Y" s( }9 H8 t* _$ W; X
4-1 实时通信相关概念讲解
+ |& C ]# w, M M4-2 编写websocket服务端启动类
6 V0 Y9 U M _: @% c2 S8 W4-3 编写websocket子处理器initialzer
9 Y1 W- `& {6 P8 M+ Y4 ^4 u4-4 编写chatHandler对消息的处理
0 U% D' I% n8 r- i7 w4 O+ |8 ]4-5 基于js的websocket相关api介绍
0 R/ x' i# t ~- P0 w2 d i# ~2 b4-6 简单实用hbuilder工具编写前端websocket* h# V$ s; j$ L8 i3 f8 f
4-7 测试web端携手移动端与后端netty聊天通信
: Q R0 b6 x) f) u7 O; Y, ]) }7 K2 J- D8 j* p, L# M
第5章 使用MUI与H5+构建移动端app
# m1 ~* y5 P. g& N# B/ s零基础讲解MUI、H5+以及hbuilder开发工具,构建慕信轻聊的基本骨架! v. R; F$ D5 K: f/ }1 P
5-1 MUI,H5+,Hbuilder介绍4 B2 j. y5 l K' M/ h' `. ^
5-2 创建项目,页面基本结构讲解* O& a" h6 g ]% c1 h: ] x
5-3 自定义标题栏样式+ m+ x0 X) E0 Q/ M4 e- i
5-4 真机调试与原生标题栏样式更改
$ i9 m2 Q& W- p t5-5 首页底部tab选项卡的使用,MUI图标库讲解
0 F) w& Q% O+ s) }5-6 使用阿里图标库构建自己的icon库9 w" G- N- ? @. w; \7 A
5-7 tab选项卡切换页面(上)9 C5 f: E7 F7 G3 J$ V0 J6 U
5-8 tab选项卡切换页面(下)2 X! z9 v$ ?, A# ^, ?. b5 d" k
D4 @0 \2 Q( S% u0 V) u0 l第6章 使用springboot整合netty搭建后台
3 v/ ?$ f$ H# T2 C! N& U1 u对数据库表设计进行讲解并且使用springboot作为主要后台框架,并且整合mybatis以及netty,重构netty server并且整合 N% f7 n- P0 H$ h. g% d
6-1 数据库表设计
. A' w- R0 B9 b- e2 F0 z6-2 使用mybatis逆向工具
8 \7 t5 l3 {/ E) x" V9 M6-3 搭建springboot2.0工程8 h5 g' ^- _& y
6-4 springboot整合mybatis+ s2 ]$ |$ o4 v1 `, P
6-5 整合netty server
" w6 S% S9 G- x$ ]# e9 K5 L/ s6-6 完成netty整合springboot并且测试+ e' n& D: q# I7 f m E* X2 p
8 u/ V' v; C7 s8 l$ j. s
第7章 用户注册/登录/个人信息
) W) Y1 U1 _5 |1 r1 y开发用户注册登录以及个人信息页面相关功能模块,其中涉及到高性能分布式文件存储服务器fastdfs的搭建,并且使用nginx发布可使用http进行web访问并且下载用户头像和二维码
/ | S3 u( }+ M& D0 d. g! A8 n7-1 注册登录页面讲解与后端接口开发1
8 S x9 Y5 S0 W, M; J" M7-2 注册登录页面讲解与后端接口开发2
0 ~* o$ Z) d( d! {3 {& O' S5 K; Y7-3 登录注册页面的判断事件与js自定义util
/ D( n' V! Y/ R D) H8 L! U7 g7-4 登录注册前后端联调
/ K% y# `6 U, j0 a" f6 ^7-5 首页禁止返回和用户自动登录讲解- ?4 J. S7 r9 k
7-6 开发我的个人页面9 D8 G: k F: j2 A) O5 g
7-7 动态初始化个人信息 S: i: `" { |: ?" z6 |+ h! [
7-8 打开个人头像页面
9 Z7 R$ z# J* H& t$ T7-9 增加可选择菜单
4 K- v8 r$ c9 D, k! h# E7-10 为菜单增加事件绑定* f1 H! i; Y4 I* M3 H
7-11 选择照片与裁剪插件
4 K' F Y8 j6 r! `$ i7-12 文件服务器概览
. Z( _0 f. W& D, y4 g" l- |7-13 安装tracker服务6 T4 a5 u5 ^/ M6 g- |- i
7-14 安装storage服务
# t6 g% H5 k$ b9 L, v8 r' C7-15 配置client并且上传测试图片
! p! W7 U; H" \ y7 W0 q7-16 nginx安装与fastdfs配置(上)
; ?! T) [* b4 b, r) ?7-17 nginx安装与fastdfs配置(下)
; U+ Z& r) I# t5 z4 _7-18 fastdfs 整合springboot% c3 l$ B: l v5 t. P; m( U" s' {9 W
7-19 后端上传图片功能开发* b# @- [1 Z& `9 c8 ?) o
7-20 上传图片前后端联调与测试
, ~- y. m3 J1 Y4 O& u. W7-21 头像上传后跨页面调用自定义事件刷新
7 g8 U% M) X0 }9 V9 v) @; \' x6 x. z7-22 上传头像细节部分处理与openwindow的bug处理
, Z1 P5 Q% i5 a& x3 `! {; _; h7-23 下载头像到相册0 n# z1 `8 J6 x- t
7-24 修改昵称页面* I+ a* [( W* E' w& \ }9 a; c
7-25 修改昵称后端接口" _5 z( K0 c; w, }( h
7-26 修改昵称前后端联调
3 y/ v9 ~( X" R( y7-27 用户二维码生成
4 Q* S# `/ w& R( V/ J7-28 我的二维码作业布置
# q% ~% O$ I) w3 S7-29 我的二维码作业讲解
) A; N, `! X& z M: B7-30 用户退出以及简单小结
- \7 m/ X( O4 E7 ]9 ]4 i% \1 C- w6 Z/ b, X% S- ]2 L& s! L0 X
第8章 发现页面与通讯录相关功能开发
: o- B r& D7 U; S" U用户可以通过搜索其他用户账号进行好友添加,或者通过用户的唯一二维码进行扫码添加,发送添加请求后其他用户可以拒绝或者同意好友请求
8 r- ?* P, G4 Z( o. b; \8-1 发现页面编码
5 i8 ]" l& M+ N8-2 搜索朋友账号接口(上). M0 M7 E( o3 W) n, ]7 w
8-3 搜索朋友账号接口(下)
! E6 |# ^9 r3 ?# A* b8-4 搜索朋友前后端联调; V: }2 }: R* F# P/ |/ t
8-5 搜索结果页讲解以及webview传参
7 d2 ]* @4 p* @5 {; E h0 `8-6 发送添加好友请求接口编码% y5 A8 a8 d {8 ]# D; v
8-7 前后端连天发送好友请求$ I& s- m Y$ t) K% @4 x
8-8 查询好友请求接口
R) c- v* c3 H: m: q* |* M8-9 朋友接受到请求页面联调开发
. q9 P& l. L) l6 b) @# D4 u8-10 好友请求HTML动态渲染; D9 } A. x" R; Z% A& U/ E' `
8-11 同意或忽略事件动态绑定
+ K& D# s- D, L3 u8-12 同意或忽略controller
( f' p; ^' c9 _5 ?! `8-13 同意或忽略的service编写
{, p$ s5 M9 @/ ^& ?8-14 好友请求忽略或拒绝前后台联调4 [ {, O+ M' }
8-15 构建扫描器
' o8 ]7 Z# N8 l- _- ]8-16 扫码器颜色自定义
7 O0 ?6 b+ E; U5 Y. }8-17 扫码添加好友联调 o* f8 ?' l. q; h
8-18 延时加载预处理数据0 n! J- y* |! J, F: g2 g
8-19 mui 自带索引列表模板讲解
+ ?1 I! l4 v2 i8-20 通讯录列表整合" M- L! ~! X# J; s* e5 w
8-21 图文列表和通讯录整合增加用户头像显示
) V' ~* }( A: u8-22 查询用户的所有好友列表接口# N! z1 \" v; z2 h: A. ?& L+ g
8-23 手机端获取好友列表保存到本地. z/ A" K. y1 j$ \
8-24 定义通讯录好友列表模型
! P3 b0 D4 w3 N2 j: l, g8-25 通讯录列表渲染展现
6 ?/ ^1 E$ L1 y5 ]+ ^3 W8-26 好友请求接收方更新通讯录* i9 v! l2 h! O9 W; Q! B
) W( h" O# v; o第9章 聊天页面开发! X2 R+ R( u; K# u4 c
构建手机端上的聊天页面模型,建立会话,接受发送消息,netty控制点对点消息发送,控制会话重连,聊天记录的本地保存与左滑删除,消息标记未读,消息牵手等。
" d* `; P+ z& p9-1 聊天页面讲解与展示' y) A6 H u+ K5 L' v) ^
9-2 header动态改为好友昵称,动态滚动到最新消息! o" h; H; ]( R* p: u4 b
9-3 发送按钮的颜色状态改变
; @% R: m3 o- D8 I+ {9 K9-4 弹出软键盘重新设置聊天窗口高度- Z9 D- k0 q& I8 T T
9-5 发送消息前置条件网络状态判断 V( W' }0 k: H7 b7 K
9-6 监听网络连接事件
0 l# q% C/ a3 f" \0 S2 m2 }9-7 发送消息html渲染, G* z" N- ^- W/ Z
9-8 接收消息html渲染
) r" ]/ A7 |" \: z( ~: [- v9-9 发送消息与接收消息时的铃声播放
2 q, Z9 a. J K9-10 手机端websocket模型定义和发送消息
( p* G4 ~( N7 e1 F, k" B& I9-11 websocket接受消息的渲染_x264
; t* k- ^- B' o% F9-12 服务器断开后的重连机制' _. d# h- E6 X8 x9 D9 e, e3 i
9-13 chatHandler初步重构( X5 S, O* M" l9 y
9-14 构建聊天业务模型6 }9 d# l' P& L
9-15 chatHandler - 处理客户端连接0 y# o$ _$ f2 H% L
9-16 chatHandler - 保存聊天消息到数据库9 y; W- [& B# S w. u2 m
9-17 chatHandler - 处理消息发送
- X; t2 q0 i5 p: F$ S b5 w) Y9-18 chatHandler - 签收单条或多条消息
4 [4 M; N D# m1 M0 D+ k4 z1 S9 q: V9-19 客户端onopen联调,初始化用户和channel关系% T4 w& W$ H7 h8 H4 r
9-20 客户端发送消息与接收联调: E5 [! W% K; d2 }$ s1 S+ Z& [
9-21 接收方获得消息后重构渲染7 c# b6 r J6 d. p
9-22 客户端签收消息
* F) S+ S0 R Y( _9-23 websocket新增好友类型联调! [& v: R2 | b; L2 x' s* X& b
9-24 保存聊天记录到本地
& V# ]- |4 [" X9-25 从本地获取聊天记录
" r! f! {2 R5 L/ O! s6 j- G6 Q9-26 初始化聊天记录和渲染
9 w3 G- B; p* _7 \3 Q0 M$ [9-27 聊天快照业务简单讲解5 x( K. E$ g$ O
9-28 保存聊天快照到本地4 b5 q2 u# X! `) y8 D! i, z
9-29 获取聊天快照+ P4 ^# @ W$ ~
9-30 已读未读消息的设置与快照调用
, A! u1 o) i3 l9 B0 G5 l3 _9-31 展示聊天快照6 }$ ~7 {0 {0 g) I: W
9-32 未读消息小红点标记. t @1 Z: t" ^0 G# F
9-33 点击快照开始聊天
7 O: A5 C4 U# \( A9-34 未读消息标记已读
4 W, z% R4 S3 W+ f# L9-35 开发获取未读消息列表接口+ B% n) W- G3 v
9-36 前端获取未读消息列表
* D0 @, ^3 d) ?! s+ v% v& I2 c9-37 批量签收并且展示未读消息% S3 @% t( L3 n( J
9-38 聊天快照左滑删除效果
6 o4 {6 X9 @: }/ I8 Y9-39 聊天快照右滑删除聊天记录与快照 g0 y2 ]3 W( b" f3 v) e: y
3 |' ?+ [ y Q5 b$ o8 g
第10章 使用netty编写心跳检测
; c1 e- _$ K1 Uapp不会主动和服务端切断,只会有可能发生离线或者关机或者飞行模式,所以需要在后台控制心跳,检测客户端的读写请求来判断是否清除无用的channel。同时手机端也要保持一定的keepalive。未接受到的消息在用户下次打开后重新获取。 ...
4 n6 D/ L( w* m7 K3 c1 n- s10-1 心跳机制的概念与飞行模式+ G) i7 U% ?1 {( \; e5 X% v
10-2 心跳HeartBeatHandler编码
& P8 u, s! r, `7 G8 B10-3 配置空闲handler与超时时间设置; b# o2 K4 @9 |6 r
10-4 手机端与netty的心跳测试
7 \% }+ x; k1 i( q10-5 前端keepalive保持,与心跳测试
9 c( S+ z4 y7 g) ^) z$ n: a/ e/ I q9 I" ]/ V5 D# E" T( W' [
第11章 后端云部署与app云打包
6 ]: R C2 S" q" \本章节做为上线部分,需要购买云服务器,采用腾讯云,会对其进行讲解,然后搭建基本环境,包含JDK、tomcat、MariaDB、fastdfs、nginx,springboot打包与部署。最后对手机app进行云打包( u0 s- e) V: K/ |4 z
11-1 云服务器购买推荐及安全组介绍与关联
% n+ p7 W$ g6 F3 q11-2 文件传输工具的使用
1 _7 j8 i" X: \# ~4 G- Y11-3 命令行工具的简单使用 F2 ?( n4 L8 A; d
11-4 云服务器配置JDK环境
9 L% r- m: R6 t; R11-5 云服务器安装tomcat1 U5 Z" @, E7 u1 _6 l# M M
11-6 云服务器离线安装MariaDB3 W/ E; y* o4 ]& }! p' E( l
11-7 云服务器MariaDB安全设置与客户端连接调试* x7 X/ J$ C4 k# Y7 e
11-8 云服务器安装图片服务器的注意事项以及nginx反向代理tomcat服务器3 E, }6 A/ s6 K! d8 N7 O
11-9 springboot工程打包
* H4 _5 N2 P# D- e11-10 打包文件上传到云服务器并且进行tomcat部署
2 s$ P0 f# v5 `- O/ n2 i( c5 v11-11 app云打包
) a6 M* \: F! A! N& S* }# {# R1 |% ^: s
第12章 课程总结
/ |5 z) e. T. L. t2 ^7 |课程总结
9 H9 c7 ?6 c% |+ E12-1 课程总结
1 |- t' r* D8 k9 y
* [! G$ m+ H& s0 G5 X& b! n0 p# F下载地址:
9 }9 Q' m" k( M9 D- O# w4 D2 x. ]* |: d( W
资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见9 ?) }7 n+ h5 T/ g& Y0 a
' z1 h( B: M! g1 c0 d. _
3 g6 E' V) a- @) B& @
6 X$ U' M$ @8 ]/ e( b
本资源由Java自学网收集整理【www.javazx.com】 |
|