什么是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服务端

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

  1. 撸一个简易聊天室,不信你学不会实时消息推送(附源码)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐 19 个 github 超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 分不清轮询.长轮询? ...

  2. java聊天室源工程文件_socket实现java聊天室,公告等功能,前后端分离(附源码)...

    pom文件 org.springframework.boot spring-boot-starter-websocket application.yml中端口设置 server: port: 1111 ...

  3. android+仿iphone,Android编程实现仿iphone抖动效果的方法(附源码)

    Android编程实现仿iphone抖动效果的方法(附源码) 时间:2021-05-20 本文实例讲述了Android编程实现仿iphone抖动效果的方法.分享给大家供大家参考,具体如下: 布局文件: ...

  4. java聊天室报告ppt_基于JavaWeb聊天室设计与实现毕业论文+任务书+中期表+中期报告+项目源码+数据库+答辩PPT...

    摘 要 Web聊天室曾在因特网进入中国早期的时候被广泛使用,一度深受国内网民的青睐.随着腾讯QQ以及之后微信的普及,目前Web聊天室已然较少被使用.但在一些商业网站,例如BBS以及在线购物系统,还是会 ...

  5. Android 百度地图-实现POI的搜索(搜索周边)附源码

    首先贴出主要代码 Activity package cn.yhsh.maptest;import java.util.ArrayList; import utils.PoiOverlay; impor ...

  6. Android 音视频深入 四 录视频MP4(附源码下载)

    本篇项目地址,名字是<录音视频(有的播放器不能放,而且没有时长显示)>,求star https://github.com/979451341/Audio-and-video-learnin ...

  7. Android 小項目之---Iphone拖动图片特效 (附源码)

    曾经被Iphone用手指在屏幕上滑来滑去拖动图片的操作方式吸引吗?在Android里头,这并不是什么难事. 所需要的技术点如下:Android.content.Context .Android.wid ...

  8. 基于 Android NDK 的学习之旅-----Java 调用C(附源码)

    基于 Android NDK 的学习之旅-----Java 调用C 随便谈谈为什么要Java调用C 吧: 我认为: 1.  有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所 ...

  9. Android下拉刷新上拉更多瀑布流(附源码)

    关于瀑布流,我相信有很多朋友经常会用到.但是呢我们经常也会遇到这个问题,比如瀑布流不能下拉刷新,或者上拉更多,有的是一个简单的touch事件监听上拉加载更多,但是很显然,这样的功能以及用户体验得不到提 ...

  10. SpringBoot整合Elasticsearch详细步骤以及代码示例(附源码)

    准备工作# 环境准备# JAVA版本 Copy java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1. ...

最新文章

  1. webpack2诸类事宜
  2. ASP.NET 2.0 正式版中无刷新页面的开发
  3. linux pycharm 数字键盘失效
  4. 【学员分享】PMcaff阿德老师精(diao)彩(bao)传道的9条干货
  5. 麦迪时刻的视频和图片
  6. P4480-[BJWC2018]餐巾计划问题【三分,贪心】
  7. 拓扑排序最长链-P3119 [USACO15JAN]草鉴定Grass Cownoisseur
  8. [html] 实现两列等宽布局的方式有哪些?
  9. 《JAVA核心技术》
  10. 【补丁分析】CVE-2016-8610:对导致拒绝服务的“SSL Death Alert”漏洞补丁分析
  11. Kafka Manager界面添加Partition
  12. CSS 总结我对3D效果的一些误解
  13. 面向对象-java控制台计算器简单实现[50行]
  14. LabVIEW编程LabVIEW开发Agilent 4294A 例程与相关资料
  15. 实用金属材料手册_各种金属材料单位重量计算公式(汇总版)
  16. 影响英语单词拼写的6大因素
  17. About Redistribute
  18. python中输入字符串中只有字母_python中,只有一个字母的字符串属于类型
  19. 初探springboot的荆棘之路
  20. Pancake和import 语句——————————方法的重写

热门文章

  1. html5制作星星闪烁和制作时钟
  2. 移动统计工具Flurry
  3. docker exec详解
  4. 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(18):方阵的幂级数
  5. 无法使用内置管理员账户打开Microsoft Edge
  6. 论文笔记:The Effectiveness of Data Augmentation in Image Classification using Deep Learning
  7. vue实现监控视频直播
  8. Recorder+人脸识别︱国内人脸识别技术趋势与识别难点、技术实践
  9. 协同软件市场一盘散沙 春种能否秋收心中没底
  10. 解构ODL:从代码到架构设计