netty玩转irving聊天室(android整合netty客户端+springboot整合netty服务端),附源码

什么是Netty?

Netty是一个异步事件驱动的网络应用程序框架

用于快速开发可维护的高性能协议服务器和客户端。

Netty优势:

  1. 使用简单:封装了 NIO 的很多细节,使用更简单。
  2. 功能强大:预置了多种编解码功能,支持多种主流协议。
  3. 定制能力强:可以通过 ChannelHandler 对通信框架进行灵活地扩展。
  4. 性能高:通过与其他业界主流的 NIO 框架对比,Netty 的综合性能最优。
  5. 稳定:Netty 修复了已经发现的所有 NIO 的 bug,让开发人员可以专注于业务本身。
  6. 社区活跃: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。

  1. channelActive()方法,连接netty服务成功

  2. channelRead0()方法,读取到netty服务端的消息

  3. 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服务端


 

おすすめ

転載: blog.csdn.net/LLLlingli/article/details/121362706