最后更新:2022-06-21 20:55:09 手机定位技术交流文章
计算机编程的学习,不论是通过手工学习知识还是通过实际实践,在我写作中,文章的内容基本上是通过实际代码验证结果的核心来表达的。
有些人可能不知道Netty是什么,但这里是一个简短的介绍:

Nety是一个Java开放源代码框架。Netty提供非同步、事件驱动的网络应用程序框架和工具,快速开发高性能、高可靠性的网络服务器和客户端程序。
换句话说,Netty是一个基于NIO的客户端服务器端编程框架。使用Netty确保您能够快速和容易地开发一个网络应用程序,例如一个客户端服务端应用程序,它实现一个特定的协议。
Nety 大大 简化 和 简化 了 网络 应用 的 规划 和 开发 过程, 例如 为 TCP 和 UDP 提供 接口 服务 的 开发 。
IM代码分为三个模块: UI 、 客户端和服务端.
该分离的目的在于将UI显示与业务逻辑、驱动事件和接口分离,使代码层更清洁、更清洁、更易扩展和维护。
系统设计
在这套IM中,服务端由DD域驱动设计模式构建.使 SpringBoot能够控制和关闭Netty功能,同时,在服务端可以安装一个控制面板,使通信系统运行非常方便,管理用户和通讯。使用UI分隔来构建客户端的构造,为了确保业务代码与用户界面显示之间的隔离,扩展控制非常容易.
此外,功能实现包括:完美模拟WeChat桌面版本客户端、登录、搜索添加朋友、用户通信、小组通信、表达发送和其他核心功能。
解释一下:
1)UI开发:使用JavaFx和Maven来构建UI桌面工程,逐步解释登录框、聊天框、对话框、朋友栏和其他UI显示和操作事件;
2)架构设计:采用DD域驱动的四级模型结构设计和Netty组合使用,架构合理层次框架(相应的库表函数设计);
3)功能实现: 包括: 登录 、 添加朋友 、 对话通知 、 发送消息 、 重新连接等.
功能划分
聊天窗口的体积与登陆窗口的体积相比,聊天窗口的体积会更大,而且也相对复杂。
1)首先,我们定义整个聊天主窗口体为空白面板,并删除默认边框按钮(缩小、退出等);
2)然后我们是列的左边,我们称之为“条条”,是功能区域实现;
3)最后添加窗口体事件,在点击按钮时更改内容面板中填充信息。
聊天界面
选择对话框后显示的内容区域,即用户之间发送和显示的讯息。

总的来说,这是一个连接的过程,点击对话框用户左边,右边是相应的内容填充。 然后在右边的列表视图上填充的对话框列表需要与每个对话框用户关联,在点击聊天用户时,这是一个重复更改填充的过程。
1)单击左边的每个对话框,右边的聊天框的内容将相应地发生变化(同时相应的对话框名称也会发生变化);
2)对话框左边是朋友发送的讯息,右边是一个人发送的讯息(同时,消息内容随着内容增加而增加的高度和宽度);
下面是文本输入框,在以后的实现中,我们的文本输入框是公开设计的,当然你也可以为个人使用设计。
好友列表
每个人都经常使用PC侧的WeChat,知道“朋友”栏有几个部分,包括:新朋友、公共号码、团体和最低的朋友。
当前我们使用的方法是fxml设计,例如这个部分是可提取并置于代码并设计成组件元素类的通用特征;
(二)分析后,基于JavaFx组件的开发,这个部分是嵌入的列表视图,也就是说,底部的面板是一个列表视图,朋友和团体都有列表视图,经过处理后,我们可以轻松地填写数据;
此外,这种结构在运行我们的程序过程中主要是有益的,如果你添加了好友,所以我们需要将朋友信息更新到朋友栏,当数据被加载时,为了更加便捷高效,所以我们设计了一个嵌入式列表视图(如果你不太了解,答案可以从下面的代码获得。
事件定义
在桌面UI开发中,为了将UI与业务逻辑分离出来,我们需要提供在界面和界面操作事件抽象之后显示操作界面的影响的界面。
这些接口是当前向外部用户界面提供的所有行为接口,其中一个是:打开窗口,搜索朋友,添加朋友,打开对话框,发送消息。
我早先说过,更合适的建筑是你现在所需要的最好的建筑。
那么你如何设计你所需要的建筑?
因此, 该 系统 具有 下列 前提 :
(一)系统应在服务端设有网页,以管理通信用户和服务端的控制和监测;
2)数据库的对象类不应被外部污染和隔离(例如,如果您的数据库类被泄露到外部显示类,那么您需要添加一个字段,该字段不是您的数据库的现有属性。
3)由于Nety通信在Java语言中实现,因此服务端和客户需要使用协议定义和分析来沟通。所以我们需要把这个层拔出并提供 Jar Packs(用于再使用,否则客户端和服务器复制相同的代码维护,就太恶心了);
(四)接口、业务处理、上下服务、通信交互应明确区分和实现,避免混淆和难以维护。
结合这些四个假设,您认为哪些模型结构,还有相应的技术堆栈选择的计划吗?
接下来,我将介绍两个建筑设计模型,一个你非常熟悉,MVC,另一个你可能已经听说的,DD域驱动设计。
本文由 在线网速测试 整理编辑,转载请注明出处。