# clive
**Repository Path**: jzwfcaidy/clive
## Basic Information
- **Project Name**: clive
- **Description**: No description available
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-12-02
- **Last Updated**: 2025-12-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## clive
clive客服系统,是采用thinkphp5+Gatewayworker开的高性能客服系统
## clive 使用说明:
* 在页面引入以下代码
* 引入字段说明:
> key: 每个网站都有一个唯一的key,由clive客服管理员提供
> container:如果右侧边栏加载,则不需要该字段;
>> 如果需要在某标签内显示客服图标,则container设置为容器标签的选择器,
>> 如:
则 选择器为 #abc,需要做url编码处理,设置 container=%23abc
>> %23 是 # 的 urlEncode的值
>> 如果container不为空,默认不显示文字。
> icon_with: 图标的宽度
> text_width: 文字的宽度
## clive部署方式
QQ: 12160952
* PHP要求:5.6+
```text
CentOs 6.x
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum install php56w php56w-mysql php56w-gd php56w-mbstring
```
* 安装httpd
```text
yum install httpd
```
* clive基于ThinkPHP5。请在apache下指向到clive下的public路径
```xml
Listen 8066
NameVirtualHost *:8066
ServerName localhost:8066
DocumentRoot "/work/php/clive/public"
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
```
* 新建db_clive数据库,语句见db_clive.sql文件
* 修改application下的database.php文件
```php
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'db_clive',
// 用户名
'username' => 'root',
// 密码
'password' => 'root',
// 端口
'hostport' => '3306',
```
* 搭建Gatewayworker运行环境
1 php -m 查看已经安装的php的扩展,确认是否安装了pcntl和libevent。
2 libevent扩展依赖于操作系统的libevent包,需要安装libevent包。
```text
yum install libevent2 libevent2-devel
wget http://pecl.php.net/get/libevent-0.1.0.tgz
tar xvf libevent-0.1.0.tgz
phpize
./configure --with-php-config=/usr/bin/php-config --with-libevent
make && make install
```
3 pcntl和libevent都需要加入到php的扩展引用中, 注意,libevent必须在sockets.so之后
4 php的扩展配置路径,linux可查看 /etc/php.d/ 文件夹
* 启动Gatewayworker
1 修改 /clive/vendor/GatewayWorker/Applications/whisper/Events.php的 43 行
2 进入 /clive/vendor/GatewayWorker 文件夹,执行 php start.php start
3 后台运行 php start.php start -d
## 优化程序说明
* 2018-9-4 优化客服发消息的时候,同一个用户的所有聊天窗口都会收到消息。应该只与对应的客服的窗口收到消息。
在clive-cli.js中,socket对象上增加了 kf_id 变量;
继续优化clive-mobile相关的问题;
继续优化客服端潜在的问题 -- 客服端似乎不存在这个问题;
修改后,需要将chat.html文件中的clive-cli.js的引用加上 ?v=n 以确保js不会缓存
***
## 测试说明
测试地址:http://clive.test.dakanggou.com/
管理后台:http://clive.test.dakanggou.com/admin/ 账号和密码都是 admin
客服后台:http://clive.test.dakanggou.com/service/
客服后台的账号和密码,在管理后台设置。 账号:客服2 密码:123456
***
## 2018-08-20需要优化的bug
* 基于SessionID来确定访客。同一个SessionID在客服端看到的是同有一个访客。
* 客服不在线的时候,客户可以直接离线留言,而不需要做成留言窗口。
* 最好管理后台可以设置,客服不在线的时候采用哪种方式。系统设置 - 客服设置
* 访客发言后,回车或ctrl+回车,不管用。需要优化。
* 访客的名称默认用 省_市_编号。
* 访客可以在聊天窗口修改自己的昵称。
* 访客的数据存储在 LocalStorage 里面。 记录下来是哪个域名的。或者是ip_端口
## 2018-08-31优化
* 实现简单JS将客服窗口嵌入页面的功能
* 客服列表不能是固定的两个组,需要动态从服务器加载
* 客服后台可以设置显示分组还是显示具体的客服人员
* 显示客服人员的话,如果是没在线,则为灰度显示
## 2018-08-31 平台化改动
* 平台化:支持多网站客服,可以为多个网站开通客服
* 平台分为三部分:运营端、Service端、客户脚本端
* 运营端:运营人员使用的后台,入口为 /admin/
* Service端:网站客服端,入口为 /service/,网站在这里可以进行客服管理和操作。
* 客户脚本端,不再赘述。