项目介绍
- 盒子IM是一个仿微信实现的网页版聊天软件,目前完全开源,仅用于学习和交流。
- 支持私聊、群聊、离线消息、发送图片、文件、好友在线状态显示等功能。
- 后端采用springboot+netty实现,前端使用vue。
- 服务器支持集群化部署,每个im-server仅处理自身连接用户的消息
在线体验
体验地址:https://8.134.92.70
账号:
张三/123456
李四/123456
也可以自行注册账号哟!
项目结构
| 模块 |
功能 |
| im-platform |
与页面进行交互,处理业务请求 |
| im-server |
推送聊天消息 |
| im-common |
公共包 |
集群化方案

- 利用了redis的list类型数据实现生产/消息模型,其中key为im:unread:${serverid},每个im-server只会消费属于自己serverid的数据
- redis还会记录每个用户的websocket连接的是哪个im-server,发送消息时,im-platform将根据所连接的im-server的id,决定将消息推向哪个"队列
"
本地快速部署
1.安装运行环境
- 安装node:v14.16.0
- 安装jdk:1.8
- 安装maven:3.6.3
- 安装mysql:5.7,密码分别为root/root
- 安装redis:4.0
- 安装minio,命令端口使用9001,并创建一个名为"box-im"的bucket,并设置访问权限为公开
2.启动后端服务
mvn clean package
java -jar ./im-platform/target/im-platform.jar
java -jar ./im-server/target/im-server.jar
3.启动前端ui
cd im-ui
npm install
npm run serve
4.访问localhost:8080
界面截图
文字聊天:

发送图片、文件:

群聊:

好友列表:

群聊列表:

联系方式
QQ: 825657193
邮箱:825657193@qq.com
有任何问题,欢迎给我留言哦
最后
撸码不易,喜欢的朋友麻烦点个star吧!