• 💂 个人网站: 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。如需更多类型优质项目推荐,请在文章后留言。

在这里插入图片描述

Logo

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

更多推荐