一、项目背景
在当今数字化商业环境中,即时沟通已成为企业与客户之间不可或缺的桥梁。无论是电商平台、企业官网还是服务型门户,一个高效、稳定的在线客服系统都能显著提升客户体验和转化率。
然而,市面上的商业客服系统往往价格高昂,而开源的解决方案要么过于庞大、部署复杂,要么代码质量参差不齐、存在安全隐患。
基于此,我开发了一套轻量级PHP在线客服系统 ,秉持 "简单、安全、开箱即用" 的理念,让任何有PHP基础的个人或企业都能快速拥有自己的客服系统,并可根据业务需求自由定制。
二、系统架构与技术栈
本系统采用原生PHP + MySQL + AJAX构建,不依赖任何重型框架(如Laravel、ThinkPHP),具备轻量、高效、跨平台部署的特点。
| 技术组件 | 选型 |
|---|---|
| 后端语言 | PHP 7.4+ |
| 数据库 | MySQL 5.7+ |
| 前端框架 | jQuery 3.6 |
| 通信方式 | AJAX 轮询(可升级为 WebSocket) |
| 会话管理 | PHP Session + Cookie |
| 音效引擎 | Web Audio API(浏览器原生合成) |
核心设计原则:
-
前后端分离思想:后端提供统一 RESTful API,前端通过 AJAX 调用
-
会话无状态化 :用户端通过
localStorage持久化身份标识,刷新页面不丢失对话 -
安全防护:CSRF Token 校验、XSS 转义、文件 MIME 类型校验、密码哈希存储
三、核心功能模块
3.1 用户端(访客侧)
| 功能 | 说明 |
|---|---|
| 零注册登录 | 用户打开页面即自动分配唯一数字ID(从1开始自增),无需任何注册流程 |
| 消息发送 | 支持发送文本、表情符号(点击插入) |
| 文件上传 | 支持图片(jpg/png/gif)、视频(mp4/avi/mov)、文档(pdf/doc/xls/ppt/txt/zip等),图片自动压缩至800px以内 |
| 消息历史 | 刷新页面或重新打开,历史消息自动恢复(基于 localStorage 持久化) |
| 新消息音效 | 收到客服回复时播放"叮咚"提示音(Web Audio API 合成,无需外部文件) |
| 图片交互 | 左键点击放大查看;右键弹出"放大/下载"菜单;支持拖拽到微信/桌面直接复制 |
| 拖拽上传 | 支持从桌面或微信拖拽图片/文件到聊天框,自动上传发送 |
| 滚动位置保持 | 向上翻看历史消息时,轮询刷新不会跳回底部;新消息到来时只有用户在底部才自动滚动 |
| 响应式适配 | 完美适配手机端,在移动设备上自动调整布局 |

3.2 客服端(管理侧)
| 功能 | 说明 |
|---|---|
| 管理员登录 | 独立登录页面,账号密码通过数据库直接添加(无注册入口,更安全) |
| 会话列表 | 左侧展示所有活跃访客,按最后消息时间排序 |
| 未读提醒 | 有新消息时,对应访客右侧显示红色 "新" 字标签 |
| 备注功能 | 可为每个访客添加备注(仅客服端可见),方便识别客户 |
| 消息回复 | 支持文本、图片、视频、文档等多种类型的消息回复 |
| 对话删除 | 支持删除单个对话或一键清空所有对话(逻辑删除,数据可恢复) |
| 会话保持 | 登录后1小时内刷新页面无需重新登录(Session 持久化) |
| 响应式适配 | 手机端左侧用户列表变为横向滚动,操作便捷 |

四、安全与性能保障
作为生产可用的客服系统,安全性是重中之重。本系统内置了以下安全机制:
| 安全措施 | 实现方式 |
|---|---|
| CSRF 防护 | 所有写操作(发送消息、删除、标记已读等)均校验 CSRF Token |
| XSS 防护 | 所有用户输入的消息内容在输出时均经过 htmlspecialchars 转义 |
| SQL 注入防护 | 全部使用 PDO 预处理语句,杜绝 SQL 注入风险 |
| 密码安全 | 管理员密码使用 password_hash() 加密存储 |
| 文件上传安全 | 校验文件扩展名 + MIME 类型双重验证,防止伪装文件上传 |
| 会话安全 | Session ID 由 PHP 自动管理,有效期1小时 |
性能优化方面:
-
图片上传时自动压缩(最大宽高800px,质量80%),单张图片大小从几MB降至200-500KB,微信传输速度显著提升。
-
消息列表仅加载最近200条记录,避免大数据量查询导致内存溢出。
-
AJAX 轮询间隔3-5秒,兼顾实时性和服务器负载。
五、定制化开发服务
本系统采用模块化设计,所有功能均可按需定制,满足不同业务场景的需求。
可定制方向
| 定制方向 | 说明 |
|---|---|
| UI 主题 | 修改 CSS 样式,适配企业品牌色调 |
| 功能扩展 | 增加自动回复、快捷回复、知识库、满意度评价等高级功能 |
| 实时通信 | 将 AJAX 轮询升级为 WebSocket(Workerman/Swoole),实现零延迟消息推送 |
| 多渠道接入 | 对接微信公众号、小程序、APP 等,统一客服后台 |
| 数据分析 | 增加会话统计、客服绩效、消息报表等数据看板 |
| API 对接 | 开放接口,与企业 CRM/ERP 系统打通,实现客户数据同步 |
| 多客服支持 | 当前为单客服模式,可扩展为多坐席、会话分配、排队机制 |
二次开发建议
-
消息推送优化:当前采用 AJAX 轮询(3-5秒间隔),适合中小规模场景。如需更高实时性,可基于 Workerman 或 Swoole 改造为 WebSocket 长连接。
-
AI 智能客服:可接入大语言模型 API,实现智能问答与自动回复。
-
多客服支持 :通过扩展
admins表实现多坐席,增加会话分配、客服状态、转接等功能。
六、项目亮点总结
✅ 零门槛使用 ------用户无需注册登录,打开即聊
✅ 轻量高效 ------原生 PHP + MySQL,不依赖重型框架,资源占用极低
✅ 功能完整 ------文本、图片、视频、文档全类型消息支持
✅ 安全可靠 ------CSRF、XSS、SQL注入全方位防护
✅ 开箱即用 ------5分钟完成部署,立即投入使用
✅ 完全开源 ------源码无加密,支持深度二次开发
✅ 响应式设计 ------PC端和手机端完美适配
✅ 可定制性强------可按需定制UI、功能、对接第三方系统
七、获取源码与联系方式
-
源码获取:私信联系获取完整项目源码(含数据库脚本、全部PHP文件、前端样式)
-
定制开发:欢迎咨询功能定制、UI设计、系统对接等服务
-
技术支持:部署过程中遇到任何问题,可随时沟通