1比1还原微信!一款开源免费的仿微信的聊天IM工具
- 💂 个人网站: IT知识小屋
- 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
简介
b-im是一款仿微信实现的即时通讯系统,全面支持私聊、群聊、音视频通话、离线消息、图片、语音、文件传输、表情、群@、消息同步等功能,且不依赖任何第三方收费组件。系统采用SpringBoot+Netty构建后端,Vue开发Web端,uni-app实现移动端,支持多端同时在线。
系统具备具出色的横向扩展能力,支持集群化部署,支持单人、多人音视频通话和App、H5和微信小程序多端使用,是中小型企业搭建高可用、高性能的即时通讯平台的最优选!
架构
项目结构:
├── im-platform/ # 业务平台服务,处理用户的业务请求(HTTP 协议)
├── im-server/ # 消息推送服务,基于 Netty 实现 WebSocket 消息转发
├── im-client/ # 消息推送 SDK,供其他服务集成,与 im-server 通信
├── im-common/ # 公共模块,后端服务依赖的公共包
├── im-web/ # Web 前端项目,基于 Vue 实现
├── im-uniapp/ # 移动端项目,基于 UniApp,可打包成 App、H5、微信小程序
├── db/ # 数据库脚本目录,包含初始化 SQL 脚本
├── 截图/ # 项目截图目录,包含界面展示图片
├── .gitignore # Git 忽略文件配置
├── LICENSE # 开源许可证文件
├── README.md # 项目说明文档
└── pom.xml # Maven项目管理配置文件
消息推送流程:

-
利用了redis的list数据实现消息推送,其中key为im:unread:${serverid},每个key的数据可以看做一个queue,每个im-server根据自身的id只消费属于自己的queue
-
edis记录了每个用户的websocket连接的是哪个im-server,当用户发送消息时,im-platform将根据所连接的im-server的id,决定将消息推向哪个queue
功能列表
用户管理
-
用户注册:支持新用户注册账号
-
用户登录/登出:支持用户登录系统与安全登出
-
用户信息管理:支持查看与修改个人信息,如头像、昵称等
-
用户封禁:管理员可对违规用户进行封禁操作
好友系统
-
好友添加/删除:支持用户之间互相添加或删除好友
-
好友信息查看:可查看好友的详细资料
-
好友在线状态显示:可实时查看好友是否在线
群组管理
-
群组创建/修改/删除:支持用户创建群组、编辑群信息或解散群组
-
群成员邀请、踢出、退出:支持邀请新成员入群、将成员移出群或成员主动退出
-
群成员在线状态显示:查看群成员当前是否在线
-
群组封禁功能:支持对群组或群内成员进行封禁操作,限制其发言权限
私聊功能
-
文字消息:支持发送文本消息
-
表情消息:支持发送表情符号
-
图片消息:支持发送图片内容
-
文件消息:支持多类型文件传输
-
语音消息:支持语音录制和播放
-
音视频通话:支持一对一音视频通话功能
-
已读/未读状态显示:可查看消息是否被对方阅读
群聊功能
-
支持私聊中的所有消息类型:包括文字、表情、图片、文件、语音和音视频等
-
回复消息:可对某条消息进行引用回复,便于上下文理解
-
@成员提醒:支持在群聊中@指定成员提醒其查看消息
其他功能
-
离线消息:在用户离线期间发送的消息可在上线后接收
-
聊天记录查看:支持查看历史聊天记录,便于查询和回顾
-
粘贴截图发送:可将截图直接粘贴进输入框快速发送
-
敏感词过滤:内置敏感词过滤机制,可自动屏蔽违规言论
多端支持(UniApp)
-
支持 Web 端全部功能:包括音视频等功能在移动端同样可用
-
跨平台支持:基于UniApp构建,一套代码可打包为H5、微信小程序、Android和iOS应用
-
多端同时在线:支持用户在多个设备同时登录并保持在线状态
-
消息同步:多终端之间的消息实时同步,确保不会漏接信息

UI界面
私聊:

群聊:

群通话:

好友列表:

群列表:

移动端APP:


后台管理系统:




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

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

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)