目录
-
一、前言
-
二、演示
-
三、系统设计
-
四、UI开发
-
1. 整体结构定义、侧边栏
-
2. 对话聊天框
-
3. 好友栏
-
4. 事件定义
-
五、通信设计
-
1. 系统架构
-
2. 通信协议
-
3. 添加好友
-
4. 消息应答
-
5. 断线重连
-
6. 集群通信
-
六、源码下载 🎉
-
七、总结
一、前言
这知识学的,根本没有忘的快呀?!
是不是感觉很多资料,点收藏起来爽
、看视频时候嗨
、读文章当时会
,只要过了那个劲,就完了,根本不记得这里面都讲了啥。时间浪费了,东西还没学到手,这是为啥?
其实因为学习也分为上策、中策和下策:
- 下策:眼睛看就行,坐着、窝着、躺着,都行,反正也不累,还能一边回复下吹水的微信群
- 中策:看完的资料做笔记整理归纳,长期积累资料
- 上策:实践、上手、应用、调试、归纳、整理资料,总结经验输出文档
综上,下策学起来很快感觉自己好像会了不少,中策有点要动手了懒不想动,上策就很耗时耗力了要自己对每一个知识点都能事必躬亲到亲力亲为。就这样你在学习的时候不自觉的就选择了下策,因此其实并没有学到什么。
学习能把知识学到手,讲究的是实践,在小傅哥编写的文章中,基本都是以实践代码验证结果为核心,讲述文章内容。😁从小我就喜欢动手,就以一个即时通信的项目为例,已经基于不同技术方案实现了5、6次,仅为了实践技术,截图如下:
- 有些是刚学完Socket和Swing的时候,想动手试试这些技术能不能写个QQ出来。
- 也有的是因为实习培训需要完成的项目,不过在有了一些基础后,一周时间就能写完全部功能。
- 虽然这些项目在现在看上去还是丑丑的界面,以及代码逻辑可能也不是那么完善。但放在学习阶段的每一次实现中,都能为自己带来很多技术上的成长。
那么,这次IM实践的机会给你,希望你能用的上!接下来我会给你介绍一个IM的系统架构、通信协议、单聊群聊、表情发送、UI事件驱动等各项内容,以及提供全套的源码让你可以上手学习。
二、演示
在开始学习之前,先给大家演示下这套仿照PC端微信界面的IM系统运行效果。
聊天页面
添加好友
三、系统设计
在这套IM
中,服务端采用DDD
领域驱动设计模式进行搭建。将 Netty 的功能交给 SpringBoot
进行启停控制,同时在服务端搭建控制台可以非常方便的操作通信系统,进行用户和通信管理。在客户端的建设上采用UI
分离的方式进行搭建,以保证业务代码与UI
展示分离,做到非常易于扩展的控制。
另外在功能实现上包括;完美仿照微信桌面版客户端、登录、搜索添加好友、用户通信、群组通信、表情发送等核心功能。如果有对于实际需要使用的功能,可以按照这套系统框架进行扩展。
- UI开发:使用
JavaFx
与Maven
搭建UI桌面工程,逐步讲解登录框体、聊天框体、对话框、好友栏等各项UI展示及操作事件。从而在这一章节中让Java 程序员学会开发桌面版应用。 - 架构设计:在这一章节中我们会使用DDD领域驱动设计的四层模型结构与Netty结合使用,架构出合理的分层框架。同时还有相应库表功能的设计。相信这些内容学习后,你一定也可以假设出更好的框架。
- 功能实现:这部分我们主要将通信中的各项功能逐步实现,包括;登录、添加好友、对话通知、消息发送、断线重连等各项功能。最终完成整个项目的开发,同时也可以让你从实践中学会技能。