来客客服-PHP多租户在线客服系统全套源码/Workerman WebSocket实时推送+三端覆盖+带安装向导

综合源码2026-08-27160 阅读
约 1,849 字 · 大约 6 分钟

这套源码叫"来客客服系统"(代码内部标识 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 端聊天窗口效果——左边是浮窗按钮和展开后的对话窗口,右边是全屏展开的聊天界面:

来客客服 PC端聊天窗口效果
来客客服 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。

部署步骤

  1. 服务器装好 LNMP 环境(Linux + Nginx + MySQL + PHP 7.x)

  2. 创建 MySQL 数据库,字符集选 utf8mb4

  3. 把源码传到服务器,Nginx 站点根目录指向 public/

  4. 配置 Nginx 伪静态(ThinkPHP 标准规则)

  5. 浏览器打开 http://你的域名/install.php,按向导填写数据库信息完成安装

  6. 修改 ymwl_pusher/config.php,把域名改成你的实际域名

  7. 启动 WebSocket 推送服务:Linux 下执行 php ymwl_pusher/start.php start -d,Windows 下双击 winstart.bat

  8. 防火墙放行 9090 和 2080 端口

  9. 打开后台登录页面,用安装时设置的账号密码登录

预计部署耗时:环境就绪的情况下 20-30 分钟;从零搭环境算起约 1-2 小时。

延伸阅读1 篇

下载地址

会员免费

本资源为会员专享,登录后可下载