絮叨
最近看了下掘金小测 Netty 入门与实战:仿写微信 IM 即时通讯系统 ,然后巩固了下自己前面的学习,然后就想着做个学习记录吧,把实战的内容。
github 对应的分支的话,就是下面这个
网络异常,图片无法展示
|
总的结构
网络异常,图片无法展示
|
- attribute 这里面是用来给channal 设置值的 每个连接的值
- client 客户端
- codec 编码解码
- protocol 粘包拆包
- serialize 序列化
- server 服务端
- session 用户信息
- util 工具
然后我们分开来看 服务端和客户端
服务端
网络异常,图片无法展示
|
最主要是这几个hander,那么我们来看看
- Spliter 这个是用来解决粘包拆包,多包问题的 确定我们的魔数 我们的内容字节,这样我们收到的包就就不会有不完整的了。
- PacketCodecHandler 这个就是编码和解码的
- LoginRequestHandler 处理登录请求的
- AuthHandler 鉴权 意思是登录之后,并不是后面的责任链都需要去鉴权,所以就有这个鉴权的逻辑
- IMHandler 群聊和单聊相关的逻辑
以上就是我们服务端的编写,具体的代码大家自己下载去看看。
客户端
网络异常,图片无法展示
|
我们可以看出,他的处理hander就比较多了,因为很多业务的hander在里面.什么加入群聊,通知群聊,退出群聊,等等逻辑都在里面了,
结尾
其实就是记录一下,下次用到的时候好找,这个文章推荐大家直接看源码撸,然后还得要有点基础这样。注明出处。