netty玩转irving聊天室(android整合netty客户端+springboot整合netty服务端),附源码
Posted 永远的永远次方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了netty玩转irving聊天室(android整合netty客户端+springboot整合netty服务端),附源码相关的知识,希望对你有一定的参考价值。
什么是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、项目源码
以上是关于netty玩转irving聊天室(android整合netty客户端+springboot整合netty服务端),附源码的主要内容,如果未能解决你的问题,请参考以下文章