MCPcopy Index your code
hub / github.com/Giyn/LiveChat

github.com/Giyn/LiveChat @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
238 symbols 503 edges 22 files 24 documented · 10% 1 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LiveChat

:spiral_notepad: Introduction

:two_men_holding_hands: 本项目基于 Java 的 Swing 包实现了一个带图形用户界面的基于数据加密算法的即时聊天系统。实现了用户登录及验证、在线聊天、好友管理、文件传输、聊天记录管理和数据传输加密等功能。

编程语言:Java;

JDK 版本:1.8.0;

开发工具:IntelliJ IDEA(版本:2020.2.1);

数据库:MySQL(版本:8.0.19 for Win64 on x86_64);

服务器:阿里云服务器(版本:Windows Server 2019 数据中心版 64 位中文版)

程序架构:C/S 架构;

:point_right: Instruction

先运行 LiveChat/Server.java 文件,然后运行 LiveChat/Client.java 文件(支持多开)即可。

:black_nib: DemandAnalysis

需求分析图:

78e8f4071226ef856f471d3c24fda25.png

  1. 用户登录:

用户在登录界面输入用户 ID 和密码点击登录,后台系统接收到数据后进行用户身份验证,若验证通过则进入系统主界面;若没有通过用户身份验证则显示错误。

  1. 登录验证:

用户点击登录按钮后,后台系统接收到用户输入的信息后,在数据库的用户信息表进行查询,若验证成功则成功进入系统主界面;若验证失败则返回对应的错误信息。

  1. 聊天功能:

在好友列表中选择一名好友后,打开与其聊天界面,若该好友在线,则可以向其发起即时聊天,对方收到消息后也会弹出聊天窗口。

  1. 文件传输:

在与好友聊天时,可以进行文件/图片的发送,对方接收到文件后可以保存在聊天记录文件夹中。

  1. 好友管理:

用户可以在好友列表中进行添加或删除好友,添加好友时会向对方发送申请,对方收到通知并通过申请后方能成为好友,好友列表的信息会存储在数据库中,在好友关系解除后该数据也会清除。

  1. 在线、离线状态显示:

后台服务器动态地请求用户的所有好友的在线状态,并实时返回信息,以实现显示所有好友当前是否在线,达到较好的鲁棒性。

  1. 聊天记录管理:

后台服务器将用户与好友的聊天记录以文件的形式存储于本地,用户无需配置数据库即可在本地导入聊天记录,以便聊天记录的查询。

  1. 数据传输加密:

计算机网络安全最为重要的内容是为用户提供安全可靠的保密通信,其中最常用的手段是密码机制。在该系统中所采用的加密算法是 RSA 加密算法和 MD5 加密算法。其中用户的密码使用 MD5 加密后存储于数据库,用户与用户间的聊天记录信息使用 RSA 加密算法后形成密文在后台服务器进行传输,好友经过共享密钥进行解密后才能得到明文,基于以上的加密操作来防止中间攻击导致的数据泄露,

系统通信架构图:

fab66585298b7dfb4e097ce6223e302.png

软件功能架构图:

787b84e2e7bd4f73aff4168bb9853f6.png

:heart_decoration: Features

  1. 用户登录

970630b8fbcc5b613e9b646959b9338.png

  1. 好友列表

19ba3eed401dfc9cee04388c90c842d.png

  1. 添加好友

29cfb4ff2dc861eb0d15235f8d5e6d6.png

eac529f12823de7aa536fbd9b3e9508.png

  1. 好友申请

c75ddf82588d7bc086c2a0359b87cfb.png

98d57789d97379138e653b703dd38f3.png

  1. 聊天功能

ecda00ff487bc920d1eb5b78bb96f62.png

  1. 发送图片/文件

7637c47cabe231d6d3ea3fcd4f18529.png

1ee8c5f6189db34bced813f01478e6e.png

Core symbols most depended-on inside this repo

toString
called by 11
src/pers/giyn/LiveChat/server/user/User.java
BytesCapture
called by 10
src/pers/giyn/LiveChat/client/utils/Utils.java
close
called by 9
src/pers/giyn/LiveChat/client/ClientBusinesses.java
bytes2Int
called by 9
src/pers/giyn/LiveChat/client/utils/Utils.java
int2Bytes
called by 9
src/pers/giyn/LiveChat/server/utils/Utils.java
BytesCapture
called by 9
src/pers/giyn/LiveChat/server/utils/Utils.java
close
called by 9
src/pers/giyn/LiveChat/server/database/MySqlLoader.java
bytes2Int
called by 8
src/pers/giyn/LiveChat/server/utils/Utils.java

Shape

Method 193
Class 45

Languages

Java100%

Modules by API surface

src/pers/giyn/LiveChat/client/utils/Utils.java35 symbols
src/pers/giyn/LiveChat/server/utils/Utils.java34 symbols
src/pers/giyn/LiveChat/GUI/Login.java25 symbols
src/pers/giyn/LiveChat/client/ClientBusinesses.java22 symbols
src/pers/giyn/LiveChat/server/ServerBusinesses.java19 symbols
src/pers/giyn/LiveChat/client/UserController.java15 symbols
src/pers/giyn/LiveChat/GUI/chat/ChattingGUI.java15 symbols
src/pers/giyn/LiveChat/server/database/MySqlLoader.java11 symbols
src/pers/giyn/LiveChat/server/user/UsersContainer.java10 symbols
src/pers/giyn/LiveChat/GUI/friend/FriendGUI.java9 symbols
src/pers/giyn/LiveChat/GUI/utils/Utils.java6 symbols
src/pers/giyn/LiveChat/GUI/chat/RightBubble.java5 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add LiveChat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact