性能文章>Netty + JavaFx 实战:仿桌面版微信聊天>

Netty + JavaFx 实战:仿桌面版微信聊天原创

545701

作者:小傅哥
博客:https://bugstack.cn

沉淀、分享、成长,让自己和他人都能有所收获!😄

一、前言

本项目是作者小傅哥使用JavaFxNetty4.xSpringBootMysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。如果本项目能为您提供帮助,请给予支持(关注、点赞、分享)!


雨后天晴写下、年华,
巫山云景彩霞、如画。
心似平远走、飞驾,
整装年少风华、正恰。

走过了一个漫长的假期,从年假的第一天开始因为不能但又不能让自己太闲,就开始研究将所学的Netty技术实践一把,以此来巩固不同类型的技术栈在实际业务中的使用。那么使用Netty仿微信项目就此开始了!


任何一个新技术栈的学习过程都会包括这样一条路线;运行HelloWorld、熟练使用API、项目实践以及最后的深度源码挖掘。 那么在听到这样一个需求时候,Java程序员肯定会想到一些列的技术知识点来填充我们项目中的各个模块,例如;界面用JavaFx、Swing等,通信用Socket或者知道Netty框架、服务端控制用MVC模型加上SpringBoot等。但是怎么将这些各个技术栈合理的架设出我们的系统确是学习、实践、成长过程中最重要的部分。

可能很多的小伙伴在面试求职的过程中,都会看到招聘要求有些 Netty,这主要是因为 Netty 是一款非常优秀的NIO框架,并且应用非常广泛。无论在互联网、大数据以及通信和游戏行业中,都有Netty的身影。比如一线大厂阿里的RPC框架,Dubbo 协议默认使用 Netty 作为基础通信组件,用于各节点间的内部通信。淘宝的消息中间件 RocketMQ 的消息生产者与消费者,也是采用 Netty 作为高性能、异步通信组件。除了阿里系、淘宝系,其他很多一线大厂也都在使用Netty构建高性能、分布式的网络服务。

因此我们非常有必要学习 Netty,那么为了让大家更好的快速学习上手,我们拿一个熟悉又有趣的场景“PC端微信聊天”作为我们的目标项目。来让 Java 程序员使用自己熟悉的编程语言加上JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。从而学会Netty的同时,也做出合理的架构和干净的编码。

二、工程源码

三、功能概述

本专栏会以三个大章节内容,逐步进行讲解;

第一章节UI开发。使用JavaFxMaven搭建UI桌面工程,逐步讲解登录框体、聊天框体、对话框、好友栏等各项UI展示及操作事件。从而在这一章节中让Java 程序员学会开发桌面版应用。

第二章节架构设计。在这一章节中我们会使用DDD领域驱动设计的四层模型结构与Netty结合使用,架构出合理的分层框架。同时还有相应库表功能的设计。相信这些内容学习后,你一定也可以假设出更好的框架。

第三章节功能实现。这部分我们主要将通信中的各项功能逐步实现,包括;登录、添加好友、对话通知、消息发送、断线重连等各项功能。最终完成整个项目的开发,同时也可以让你从实践中学会技能。


四、项目演示

登陆页面

登陆页面

聊天页面

聊天页面

添加好友

添加好友

消息提醒

消息提醒

五、专栏学习

专栏共有25篇文章,分别从UI、架构到功能实现逐步讲解,非常适合新人学习提升编码能力和架构思想。

学习链接:https://chat.itstack.org

请先登录,再评论

暂无回复,快来写下第一个回复吧~

为你推荐

一文搞懂Netty内存管理
以下文章来源于匠心零度 ,作者零度冰炫 在学习Netty的时候,ByteBuf随处可见,但是如何高效分配ByteBuf还是很复杂的,Netty的池化内存分配这块还是比较难的,很多人学习过,看过但是还是
Netty堆外内存泄露排查与总结
导读Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。Netty 底层基于 JDK 的
Netty + JavaFx 实战:仿桌面版微信聊天
作者:小傅哥博客:[https://bugstack.cn](https://bugstack.cn) 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言本项目是作者小傅哥使用```JavaF
Netty堆外内存泄漏排查盛宴
如果使用了 Netty 堆外内存,那么可以自行监控堆外内存的使用情况,不需要借助第三方工具,我们是使用的“反射”拿到的堆外内存的情况。逐渐缩小范围,直到 Bug 被找到。当我们确认某个线程的执行带来 Bug 时,可单步执行,可二分执行,定位到某行代码之后,跟到这段代码,然后继续单步执行或者二分的方
netty源码分析之nio线程个数以及线程命名规则
netty是一个以高性能著称的网络通信框架,许多开源项目都使用了netty作为底层网络通信框架,如avro,dubbo,nats本文将从源码的角度讲述netty在确定线程个数方面如何保证应用程序性能最优,源码基于netty-4.1.6.Final
netty源码分析之揭开reactor线程的面纱(三)
读完本篇文章,你将了解到netty的异步task机制,定时任务的处理逻辑,这些细节可以更好地帮助你写出netty应用
netty源码分析之揭开reactor线程的面纱(一)
netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如何来优雅地fix掉jdk的nio bug?带着这些疑问,本篇文章将庖丁解牛,带你逐步了解netty
netty源码分析之揭开reactor线程的面纱(二)
我们已经了解到netty reactor线程的第一步是轮询出注册在selector上面的IO事件(select),那么接下来就要处理这些IO事件(process selected keys),本篇文章我们将一起来探讨netty处理IO事件的细节