大家好,我是倦意,最近我开发了一个即时通讯系统,取名叫JuanyiChat,也可以叫JChat。这是一个基于原生 PHP 8.1 + MySQL + Workerman WebSocket 构建的现代化实时聊天室,无需框架依赖,开箱即用。采用扁平化 UI 设计,完整适配移动端的系统。

可以看到有非常多的功能的,这几乎相当于是一个成品系统。
功能介绍:
聊天核心
- 多聊天室 — 支持创建公开、私密(密码)、限定角色三种类型的聊天室
- 实时消息 — WebSocket 实时推送,心跳保活,断线自动降级轮询
- 消息类型 — 普通消息、@ 提及(全员可见)、私信(仅双方可见)、系统消息
- 消息撤回 — 发送者 3 分钟内可撤回,管理员与房主可撤回任意消息
- 历史消息 — 滚动到顶部自动加载更早消息,无限翻页
- 图片消息 — 支持上传图片、粘贴发送,点击大图预览
- 自定义表情 — 内置 Emoji 面板 + 用户可上传收藏贴纸表情
- 消息提示音 — 新消息到达时播放提示音
用户系统
- 独立注册登录 — 用户名 + 邮箱注册,邮箱验证码校验
- 密码找回 — 通过邮箱验证码重置密码
- 游客模式 — 可配置是否允许游客浏览 / 发言,游客自动分配随机昵称
- 游客限额 — 游客每日发言数量限制,可在配置中调整
- 个人资料 — 点击用户名弹出资料卡,支持修改昵称、上传头像
- 身份角色 — 管理员、VIP、普通成员、游客,各角色显示不同颜色标签
- 用户称号 — 管理员可为用户设置自定义称号

在线状态
- 实时在线列表 — 右侧栏显示当前房间在线成员,圆形头像 + 身份标签
- WebSocket 心跳同步 — 精确的在线 / 离线状态追踪
- IP 归属地 — 管理员可查看用户 IP 归属地(通过 ip-api.com)
管理后台
- 用户管理 — 搜索用户、修改角色、设置称号
- 禁言系统 — 支持按用户 / 游客昵称 / IP 禁言,可按房间隔离,支持设置过期时间
- 敏感词过滤 — 后台添加敏感词及替换词,支持启用 / 停用
- 聊天室管理 — 创建 / 编辑 / 删除聊天室,设置访问权限和发言权限
- 房主机制 — 可指定聊天室房主,房主拥有该房间的消息撤回权限
- 公告系统 — 支持创建公告和欢迎消息,可绑定到指定聊天室,支持优先级排序和轮播展示
- 安全日志 — 记录登录、注册等关键操作的 IP 和请求数据

安全机制
- API 签名验证 — 前后端通信使用签名,密钥混淆传输
- 频率限制 — 基于 Redis 的消息发送频率限制
- 登录保护 — 连续失败后触发验证码,超过阈值自动锁定
- 邮件频率限制 — 防止邮件接口被滥用
嵌入式组件
- 聊天小组件 — 提供
chat-widget.js,可通过<script>标签嵌入到任意第三方网站,支持自定义标题、颜色、尺寸。
如何使用:
首先访问我们的网站:https://chat.jyblog.cn
点击主界面左下角点击登录,选择注册一个账号:

即可愉快使用,享受所有的功能!
当前你也可以不用注册,用游客的身份来聊天,但是游客有功能限制,如一个游客每天限额10条消息。游客不能改头像和昵称,游客不能收藏表情包等等。还是强烈建议注册一个账号使用。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄧󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄨󠄤󠄣󠄧󠄤󠄣󠄧󠄬󠅒󠅢󠄟󠄮
如何更改头像和昵称:
点击左下角人物头像

即可修改昵称和头像

如何艾特和私信:
右键被艾特人头像或昵称

祝大家玩得愉快!
如何引用对方的消息:
右键对方的消息,点击引用回复。

如何发送表情:
在聊天框点击😊标识

即可插入表情
如果你想插入你的自定义表情,也可以在收藏中添加表情

如果你想收藏别人的表情,也可以右键图片,点击添加到表情

如何上传图片:
点击🖼️标识即可上传图片,你也可以复制图片,也可以在聊天框按Ctrl + V 快速嵌入。

如何撤回:
每个消息下方有一个撤回按钮,自己的消息三分钟内可以撤回,但是管理和房主可以无限期撤回。

体验地址:
大概就这样,祝大家玩得愉快!󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄧󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄨󠄤󠄣󠄧󠄤󠄣󠄧󠄬󠅒󠅢󠄟󠄮
参与讨论