1比1还原企业微信!一款美观大方、功能齐全的开源即时聊天IM系统 - 实践



  • 个人网站:IT知识小屋
  • 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
  • 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

简介

r-im是一款仿且企业微信实现的即时通讯系统,系统全面支持单聊、群聊、发送表情、图片、语音、视频,显示消息已读未读的状态,发布群公告、群禁言、@群成员等,支持点对点音视频聊天,文件、图片和绝大部分媒体文件在线预览,且不依赖任何第三方收费通讯组件。系统采用TP6 + Mysql + workerman + webRTC搭建后台,vue2搭建前端,uniapp实现移动端,支持多端在线交互。

系统拥有出色的拓展性,支持个性化需求在后台配置企业模式(功能类似于企业微信)、社交模式(功能类似于微信或QQ),并提供小程序、h5、移动端、桌面端、网页多端使用,是中小型企业快速搭建易拓展,高性能的企业内网通讯系统的最佳选择!


项目结构

前端项目结构:

im-chat-front/           # 前端项目根目录
├── public/              # 公共静态资源目录
├── src/                 # 源码目录
│   ├── assets/          # 静态资源(图片、字体等)
│   ├── components/      # Vue 组件
│   ├── views/           # 路由页面
│   ├── router/          # Vue Router 路由配置
│   ├── store/           # Vuex 状态管理
│   ├── utils/           # 工具函数
│   └── App.vue          # 应用入口组件
├── .env.development     # 开发环境变量配置
├── .env.production      # 生产环境变量配置
├── .gitignore           # Git 忽略规则
├── babel.config.js      # Babel 配置文件
├── package.json         # 项目依赖与脚本配置
├── README.md            # 项目说明文档
└── vue.config.js        # Vue CLI 配置

后端项目结构:

im-instant-chat/             # 后端项目根目录
├── app/                     # 应用业务代码
│   ├── controller/          # 控制器(API 接口)
│   ├── model/               # 数据模型
│   ├── service/             # 核心服务逻辑(消息、音视频)
│   └── config/              # 应用级配置(数据库、redis、jwt等)
├── config/                  # ThinkPHP + Workerman 配置文件
├── public/                  # Web 可访问目录(放编译后的前端 dist)
│   ├── index.php            # 后端入口
│   └── static/              # 静态资源目录
├── resource/                # 视图、语言包、文件模板等
├── worker/                  # Workerman 启动脚本(gateway、business 等)
├── database/                # 数据库相关文件
│   ├── migrations/          # 表结构定义
│   └── seeds/               # 初始数据脚本
├── docker/                  # Docker 配置(Dockerfile、docker-compose)
├── example.env              # 示例环境变量配置 :contentReference[oaicite:3]{index=3}
├── .env.*                   # 实际运行环境变量文件

技术栈:

  • 后端:TP6 + Mysql + workerman + webRTC中继服务

  • 前端:vue2 + element-ui + lemon-imui

  • 移动端:uniapp for vue3+pinia,支持编译为小程序+h5+APP

  • 桌面端:vue2 + electron


功能列表

用户管理

  • 用户注册:社区模式下支持用户自由注册账号

  • 用户登录/登出:支持多端登录与安全登出,适配 Web、App、小程序等平台

  • 用户信息管理:支持查看与修改个人信息,如头像、昵称、签名等

  • 用户封禁:管理员可对违规用户进行封禁,限制其登录、发言等权限

  • 新消息通知设置:用户可自定义是否开启消息声音提醒及浏览器通知

  • 简易后台管理:提供基础的用户管理功能,如用户信息查看、封禁操作等

好友系统

  • 好友添加/删除:支持用户之间互相添加、删除好友(可配置为仅社区模式启用)

  • 好友信息查看:可查看好友的详细资料

  • 好友在线状态显示:实时显示好友是否在线

  • 好友添加限制:支持配置是否允许群成员间互加好友

群组管理

  • 群组创建/修改/删除:支持用户或管理员创建、编辑和解散群聊

  • 群成员管理:支持邀请、踢出群成员及成员主动退出群聊

  • 群成员在线状态显示:可查看群成员是否在线

  • 群公告:支持设置群公告,群成员可查看最新群通知

  • 群组封禁功能:支持群成员禁言、全员禁言等操作

  • 管理员权限:支持群管理员撤回成员消息、管理群信息

私聊功能

  • 文字消息:支持实时发送文本消息

  • 表情消息:支持发送常见表情符号

  • 图片消息:支持发送与预览图片内容

  • 文件消息:支持发送各种类型文件,支持在线预览

  • 语音消息:支持录制语音并发送播放

  • 音视频通话:支持一对一音视频通话(支持 Web 和移动端,小程序暂不支持)

  • 已读/未读状态显示:可查看消息是否被对方阅读

  • 联系人置顶与免打扰:可设置私聊会话置顶,或开启免打扰模式

群聊功能

  • 支持所有私聊消息类型:包括文字、表情、图片、文件、语音和音视频等

  • 回复消息:可对某条消息进行引用回复,便于上下文理解

  • @成员提醒:支持在群聊中@指定成员提醒其查看消息

  • 群禁言功能:支持对成员进行个别禁言或全员禁言控制

  • 群消息撤回:支持管理员撤回群成员的消息

其他功能

  • 离线消息:支持离线消息缓存,用户上线后自动同步接收

  • 聊天记录查看:支持历史聊天记录查询与搜索功能

  • 粘贴截图发送:支持将截图粘贴至输入框快速发送

  • 敏感词过滤:内置敏感词过滤机制,自动屏蔽敏感违规内容

  • 媒体文件在线预览:支持图片、视频、音频、文档等常见文件的在线预览

  • 通知栏消息推送:APP端支持推送通知栏提醒(需开启 unipush 模块并允许手机通知权限)

多端支持(UniApp)

  • Web端功能支持:移动端支持所有 Web 功能,包括音视频通话

  • 跨平台构建:基于 UniApp 开发,支持打包为 H5、微信小程序、Android 和 iOS 应用

  • 多端同时在线:用户可在多个设备同时登录并保持在线状态

  • 消息同步:支持多端消息实时同步,确保消息不丢失

模式切换支持

  • 企业模式与社区模式:系统支持两种使用模式

  • 企业模式:适用于组织内部通信,通常由管理员统一分配用户和群组

  • 社区模式:支持用户注册、自主添加好友,适合开放社交场景


UI界面

群内公告

img_1715

群聊

img_1716

语音通话

img_1717

视频通话

img_1718

收到邀请

img_1719

个人设置

img_1720

个人信息

img_1721

管理中心

img_1725

img_1722

img_1723

img_1724


开源地址&使用手册

点击下方的【IT学习日记】回复【资源】领取!

如果这篇文章对您有帮助,请一定帮我点个 “关注”“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后

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

在这里插入图片描述

posted @ 2026-01-16 15:16  gccbuaa  阅读(3)  评论(0)    收藏  举报