来客客服-PHP多租户在线客服系统全套源码/Workerman WebSocket实时推送+三端覆盖+带安装向导
这套源码叫"来客客服系统"(代码内部标识 WoLive),版本号 DIY 1.1。从代码版权信息看,原作者署名"来客PHP在线客服系统",开发者 Andy - Wangjie,代码结构规范,注释齐全。拿到手是一个完整的 ThinkPHP 项目,解压后 6367 个文件,不含编译产物,全是可读的 PHP/HTML/JS 源码。
它是一套什么东西
一句话说:这是一个 SaaS 模式的在线客服平台。"SaaS 模式"意味着它不是单商户用的,而是平台方可以在上面开多个商户账号,每个商户有自己的客服团队、自己的聊天窗口、自己的数据——类似于你搭一个"客服系统服务商"的平台。
整体分三层,用一张架构图说清楚:

最上面是平台管理层,超级管理员在这里开商户、分配权限、管理存储和缓存。中间是业务层,每个商户的客服人员在这里接待访客、管理客户、设置自动回复和工作时间。最下面是访客接入层,访客通过 PC 网页、手机浏览器或微信公众号进来咨询,系统自动分配给在线客服。
技术栈和部署条件
层面 | 技术选型 |
|---|---|
后端框架 | ThinkPHP 5.0(PHP >= 5.4) |
实时通信 | Workerman WebSocket(端口 9090 对客户端,2080 对内部 API) |
数据库 | MySQL(utf8mb4 编码,16 张业务表) |
前端 UI | Layui + LayuiAdmin |
数据图表 | ECharts |
富文本 | UEditor |
音视频 | WebRTC(可选开启) |
微信 SDK | overtrue/wechat 3.x |
云存储 | 阿里云 OSS / 腾讯云 COS / 七牛(三选一或本地) |
部署一台 Linux 服务器就够了,最低配置 1 核 2G 能跑。需要的环境:
PHP >= 5.4(推荐 7.x),装好 fileinfo、openssl 等常见扩展
MySQL 5.6+
Nginx 或 Apache,配好伪静态指向
public/目录Workerman 跑 WebSocket 推送服务,需要开放 9090 和 2080 端口
如果要微信对接,域名必须备案且配 HTTPS
系统自带 Web 安装向导(public/install.php),打开浏览器按步骤填数据库信息就能完成初始化,不需要手动导 SQL。部署熟练的话半小时内能跑起来。
功能点梳理
这套系统的功能围绕"客服接待"展开,比较完整:
实时对话相关:
Workerman WebSocket 实时推送,消息秒达,不走轮询
支持文字、图片、文件、表情(内置 60 个 emoji)、语音消息
消息撤回功能(前端有 unstr 字段做唯一标识)
聊天记录永久保存,按访客/客服/时间检索
视频通话(WebRTC,可在商户设置里开关)
访客管理:
自动分配或手动认领两种模式(
distribution_rule字段控制)访客排队队列,客服忙时自动排队等待
访客分组和标签管理
黑名单机制
IP 地理位置识别(集成 17monipdb)
客服效率工具:
快捷回复模板(每个客服可以维护自己的话术库)
常见问题 FAQ(自动匹配关键词回复)
自动回复语句
下班时间设置(按星期/时段配置,下班后自动切换留言模式)
数据和评价:
客服工作台首页有 ECharts 数据大盘——今日会话数、排队数、在线客服数、评价数,按时段画趋势图
访客满意度评价系统(星级打分 + 文字评价)
留言管理(客服离线时访客的留言统一查看)
多端接入:
PC 端:完整的 Web 聊天界面
手机端:自适应移动版聊天页
微信公众号:通过模板消息推送通知,访客可以从公众号直接进入聊天
嵌入式组件:一段 JS 代码贴到任意网站,页面右下角就会出现客服浮窗按钮
下面这两张图是源码里自带的 PC 端聊天窗口效果——左边是浮窗按钮和展开后的对话窗口,右边是全屏展开的聊天界面:


聊天窗口顶部显示客服头像和昵称,中间是对话气泡区,底部有表情、视频、语音、图片、文件五个快捷入口和发送按钮。嵌入代码通过 ymwl_1.js 实现,自动判断 PC 还是手机端加载不同的聊天页面。
数据库设计
系统一共 16 张表,表名统一以 wolive_ 为前缀。核心表之间的关系是:wolive_business(商户)下面挂 wolive_service(客服),客服通过 wolive_queue(排队表)和 wolive_visiter(访客)关联,对话内容存在 wolive_chats 里。

角色权限分三级:super_manager 是平台超级管理员,管所有商户;manager 是商户管理员,管自己商户的客服团队;service 是普通客服,只负责接待。权限控制通过 wolive_service 表的 level 字段和 wolive_admin 表的 permission JSON 字段实现。
源码结构
整个项目是标准的 ThinkPHP 5.0 多模块结构,application/ 下按功能拆成 10 个模块,之前拆过一套仿KG的棋牌源码也用了 Workerman 做长连接通信,那套是四个 Workerman 进程分管不同游戏,这套则只用一个 Workerman 进程专门管消息推送,架构简单很多,那篇也放在文末了,感兴趣可以对比看看。

代码没有加密、没有混淆、没有 ioncube,PHP 源码直接可读。Composer 依赖也都在 vendor/ 里带齐了,不需要额外 composer install。
二次开发空间
这套源码的二开友好度比较高:
纯源码交付:6367 个文件全可读,没有加密编译,ThinkPHP 5.0 的 MVC 结构清晰,改起来门槛不高
模块独立:每个模块(admin/platform/index/mobile/weixin)有自己的 controller/model/view,改一个不影响其他
前端可定制:聊天窗口样式在
assets/css/里,嵌入组件的 JS 在assets/front/和assets/layer/里,改主题色只需要改 CSS 变量存储可切换:已经封装了本地/阿里云 OSS/腾讯云 COS/七牛四种存储驱动,在后台界面切换即可
微信对接现成:用的 overtrue/wechat SDK,模板消息推送、公众号授权登录的代码都写好了
如果要做的改动:ThinkPHP 5.0 和 PHP 5.4 的版本比较老了,生产环境建议升级到 PHP 7.4+,框架层面可以考虑迁移到 ThinkPHP 6.x。另外 Workerman 推送服务目前是单进程模式,并发量大的话需要改成多进程或换 Swoole。
部署步骤
服务器装好 LNMP 环境(Linux + Nginx + MySQL + PHP 7.x)
创建 MySQL 数据库,字符集选
utf8mb4把源码传到服务器,Nginx 站点根目录指向
public/配置 Nginx 伪静态(ThinkPHP 标准规则)
浏览器打开
http://你的域名/install.php,按向导填写数据库信息完成安装修改
ymwl_pusher/config.php,把域名改成你的实际域名启动 WebSocket 推送服务:Linux 下执行
php ymwl_pusher/start.php start -d,Windows 下双击winstart.bat防火墙放行 9090 和 2080 端口
打开后台登录页面,用安装时设置的账号密码登录
预计部署耗时:环境就绪的情况下 20-30 分钟;从零搭环境算起约 1-2 小时。
延伸阅读1 篇
下载地址
会员免费本资源为会员专享,登录后可下载


