- 💂 个人网站: IT知识小屋
- 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
文章目录
-
-
- 简介
- 架构
- 功能列表
- UI界面
- 开源地址&使用手册
- 写在最后
-
简介
本项目是一款1比1仿QQ实现的即时通讯系统,支持在Windows、macOS和Linux等主流操作系统使用。系统由客户端+服务端组成,实现了消息的无缝同步与多平台协作。系统支持私聊、群聊、@提醒、离线消息、文字、表情、图片、文件等丰富功能,可适用于公司内网、外网通讯、客服系统,聊天系统等多样场景,满足企业和开发者的多样化通信需求。
系统采用模块化架构设计,前端提供了基于JavaFX和Electron实现方案,服务端支持TCP Socket和WebSocket协议,消息推送与UI层完全解耦,全面保障系统的高性能和高可扩展性。借助该系统,企业可以快速搭建高可用、高性能的桌面即时通讯平台,个人开发者也可以基于其开源特性进行二次开发与定制,是跨平台、多终端即时通讯解决方案的最优选。

架构
系统架构图

系统关系图

项目模块
| im-server | 服务端 | 含Spring Cloud 微服务和单机版,添加服务即可添加功能 |
| im-fx | 基于[JavaFX]实现的桌面客户端,支持 Windows、Mac、Linux | |
| im-e | 基于[Electron]实现的桌面客户端,支持 Windows、Mac、Linux | |
| im-web | Web平台 | |
| im-m | Vue实现的移动客户端 | 可以通过cordova打包成安卓和IOS客户端 |
服务端项目结构
|__oim-server-run # Java服务
|__cloud #微服务运行版
|__common #公共依赖的jar
|__oim-server-element-basic-* #这些是单机和微服务都依赖部分,含一些抽象定义,微服务和单机有不同实现
|__oim-server-element-cloud-* #这些是微服务所需的依赖,针对微服务的一些实现
|__service #每个运行的微服务
|__core #主要是技术管理类型微服务 如:注册中心、网关等
|__action #收集所有服务的接口地址,这样网关可以无需配置服务名,直接通过接口地址访问到对应的服务
|__admin #只是集成了spring boot admin
|__center #注册中心
|__gateway #网关
|__net #即时通讯的TCP、WebSocket等长连接服务
|__control 用于管理(net-work)用户客户端长连接服务
|__work 用户客户端长连接服务
|__support #公共支持服务 如:文件上传
|__file
|__system #针对整个系统的配置、共数据等
|__setting #
|__work #业务服务(因为business太长了,还有其他地方容易用到这个名字)
|__chat #聊天业务
|__contact #联系人
|__core #核心:用户
|__group #群
|__portal #服务地址入口
|__single #单机版
|__oim-server-single-main # 因为单机和微服务的功能模块是共用的,这里是针对一些抽象的单机实现
|__oim-server-single-running #启动服务配置
|__oim-server-web # Vue 后台管理界面
功能列表
个人资料
-
修改个人资料,包括昵称、签名、联系方式等
-
自定义头像,支持上传本地图片或拍照设置
联系人
-
联系人管理:添加、删除、搜索联系人
-
联系人分组:自定义分组便于管理
-
联系人备注名:为每位联系人设置个性化备注
群组
-
群管理:创建、解散、邀请成员
-
群分组:对群进行分类管理,提高组织效率
聊天
-
私聊:与单个联系人进行实时消息交流
-
群聊:支持多人同时在线交流
-
消息类型支持:
-
图片、表情、文件
-
图文混排,支持文字和图片同时发送
UI界面
登录界面:


聊天界面:


文件传输:

找群:

找人:


外观设置:

聊天列表:

开源地址&使用手册
点击下方的【IT学习日记】回复【资源】领取!
如果这篇文章对您有帮助,请一定帮我点个 “关注” 和 “点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后
1000+优质开源项目更新进度:294/1000。如需更多类型优质项目推荐,请在文章后留言。




