什么是Netty?
Netty是一个异步事件驱动的网络应用程序框架
用于快速开发可维护的高性能协议服务器和客户端。
Netty优势:
使用简单:封装了 NIO 的很多细节,使用更简单。功能强大:预置了多种编解码功能,支持多种主流协议。定制能力强:可以通过 ChannelHandler 对通信框架进行灵活地扩展。性能高:通过与其他业界主流的 NIO 框架对比,Netty 的综合性能最优。稳定:Netty 修复了已经发现的所有 NIO 的 bug,让开发人员可以专注于业务本身。社区活跃:Netty 是活跃的开源项目,版本迭代周期短,bug 修复速度快。
android客户端+springboot服务端
从下面四点给大家介绍核心代码模块,及源码提供。
1、irving聊天室功能介绍
2、android客户端
3、springboot服务端
4、源码git分享
1、目前irving聊天室功能(后期会更新)
1.1 、登录页,手动绑定服务ip、端口、并记住ip用户信息。灵活的实现了本地服务调试,和线上聊天功能。
1.2、加入聊天室的,可以便可聊天,自动退出(返回),和结束程序,都会退出群聊,更新在线人数。
1.3、心跳检测机制,服务端检测到客户端多少次没发消息就关闭客户端(具体下面代码部分详细讲解),客户端退出登录页面
2、android整合netty客户端
2.1、ChatClient客户端,封装netty组件,连接netty服务端。
2.2、ChatClientHandler自定义逻辑处理handler。
channelActive()方法,连接netty服务成功
channelRead0()方法,读取到netty服务端的消息
exceptionCaught()方法,远程netty服务异常时关闭连接
2.3、ChatManager 处理器管理器。发送消息和接收服务端发过来的消息。并返回activity,通知ui线程更新ui界面内容(在线人数,群里人上线,离线提醒)
2.4、IMMessage、CoderUtil自定义消息指令,自定义编码解码规则。
3、springboot 整合netty服务端
3.1、ChatServer封装netty组件、启动netty服务端。
1、封装组件
2、ChatServer实现DisposableBean接口,能在bean销毁的时候优雅的关闭netty,主从线程组。
3.2、自定义发布事件动作,Springboot启动类启动后,启动ChatServer
3.3、MsgProcessor消息处理类、对客户端发过来的消息,解码后,对应消息指令,做出相应的反馈。
3.4、ChatServerHandler,消息处理服务Handler。
1、接收客户端消息
2、客户端异常关闭处理
3.5、HeartBeatHandler服务端心跳检测,自定义超时事件,远程关闭客户端
4、项目源码
android整合netty客户端
springboot整合netty服务端