大家好,我是倦意,最近我开发了一个即时通讯系统,取名叫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 快速嵌入

上传图片

如何撤回:

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

撤回消息

体验地址:

https://chat.jyblog.cn

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