# IM客服
# 注意事项
- 在运行客服前需要注意您的服务器端是否开启,阿里云、腾讯云需要自己添加安全规则的。
- 如果需要在小程序上运行客服,需要配置SSL
# 前端设置
- 使用HBuilderX打开项目
- 找到项目目录下的config.js 将 web_socket_url 字段更改为您的域名(如果开启了SSL,请将ws更改为wss)
例:
未开启SSL:web_socket_url: "ws://v1.a3mall.top:2348"
开启SSL: web_socket_url: "wss://v1.a3mall.top:2348"
注意:修改配置后,各端需要重新打包
# 后端设置
- 找到后端程序根目录下.env文件
// 修改以下配置
[WEB]
// 如果使用SSL,app_web_url字段,请修改成https
app_web_url = http://v1.a3mall.top/ // 修改成您的域名
[WEBSOCKET]
// 如果开启SSL请修改成wss
websocket_protocol = ws://
// 修改成您的域名
websocket_url = v1.a3mall.top
// 客服端口,需要和gateway_worker.php配置文件 port字段保持一致
websocket_port = 2348
- 修改config/gateway_worker.php
// 修改以下字段
'port'=>2348, // 监听端口
'ssl'=>false, // 如果使用SSL请设为true
// 如果不使用SSL,无需设置此字段
'context'=>[
'ssl'=>[
// cert 文件,需要采用绝对路径
'local_cert' => '/www/server/panel/vhost/cert/fullchain.pem', // 也可以是crt文件
'local_pk' => '/www/server/panel/vhost/cert/privkey.pem',
'verify_peer' => false,
],
],
# Windows 用户下运行
- workerman同时支持linux系统及windows系统。windows版本workerman本身不依赖任何扩展,只需要配置好PHP环境变量即可,windows版本workerman安装及注意事项
- 如果出现类似"php不是内部或外部命令"的提示,说明没有设置好php环境变量,请参考下面步骤设置
# workerman的在Windows下与Linux下区别
1、win版本单个进程只支持200+个连接
2、win版本count属性无效,全部为单进程
3、cmd命令行启动
4、无法守护进程,cmd窗口关掉后服务即停止
cmd运行客服:
php think websocket start|stop|restart -d (daemon(守护进程)方式启动)
php think websocket start 启动客服
php think websocket stop 停止客服
php think websocket restart 重启客服
# Linux用户(含Mac OS)
Linux用户只能使用Linux版本的Workerman。
安装PHP>=5.3.3,并安装了pcntl、posix扩展
建议安装event或者libevent扩展,但不是必须的(注意event扩展需要PHP>=5.4)
# Linux环境检查脚本
- Linux用户可以运行以下脚本检查本地环境是否满足WorkerMan要求
curl -Ss https://www.workerman.net/check | php
- 如果脚本中全部提示ok,则代表满足WorkerMan运行环境
(注意:检测脚本中没有检测event扩展或者libevent扩展,如果并发连接数大于1024建议安装event扩展或者libevent扩展)
# 已有PHP环境安装缺失扩展
- 如果您的检测没有通过,请查看workeman官方安装说明:安装说明
# 服务器配置
nginx配置(以宝塔为例)
如果您未开启SSL,无需配置以下选项
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# 这里的backend可以改成自己需要的名称,我自己用的是wss。
upstream wss {
# 这里的localhost是映射本地服务器,也可以是外网ip,2348是我ws开启的端口。
server v1.a3mall.top:2348;
}
# 注意:这里的/wss后面没有/了哦
location /wss {
proxy_pass http://wss;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
# 运行客服
在终端或者cmd运行:
php think websocket [ status ] [ -d ]
php think websocket start|stop|restart -d (daemon(守护进程)方式启动)
php think websocket status // 查看状态
php think websocket start // 启动
php think websocket stop // 停止
php think websocket restart // 重启
守护进程方式启动:
php think websocket -d