# IM客服

# 环境要求

# Windows

workerman从3.5.3版本开始已经能够同时支持linux系统和windows系统。

  1. 需要PHP>=5.3.3,并配置好PHP的环境变量。

  2. Windows版本的Workerman不依赖任何扩展。

  3. 安装使用以及使用限制这里。

  4. 由于Workerman在Windows下有诸多使用限制,所以正式环境建议用Linux系统,windows系统仅建议用于开发环境。

====本页面以下只适用于Linux用户,Windows用户请忽略。 ====

# Linux用户(含Mac OS)

Linux用户只能使用Linux版本的Workerman。

  1. 安装PHP>=5.3.3,并安装了pcntl、posix扩展

  2. 建议安装event或者libevent扩展,但不是必须的(注意event扩展需要PHP>=5.4)

# Linux环境检查脚本

  • Linux用户可以运行以下脚本检查本地环境是否满足WorkerMan要求
curl -Ss http://www.workerman.net/check.php | php
  • 如果脚本中全部提示ok,则代表满足WorkerMan运行环境

(注意:检测脚本中没有检测event扩展或者libevent扩展,如果并发连接数大于1024建议安装event扩展或者libevent扩展,安装方法参见下一节)

# 已有PHP环境安装缺失扩展

  • 如果您的检测没有通过,请查看workeman官方安装说明:http://doc.workerman.net/install/install.html

# 注意事项

  1. 在运行客服前需要注意您的服务器端是否开启,阿里云、腾讯云需要自己添加安全规则的。
  2. 如果需要在小程序上运行客服,需要配置ssl 和 wss
  • 找到uniapp/config.js 将 web_socket_url 字段ws更改成wss 图片alt

  • 找到后端程序根目录下.env文件,修改 图片alt

  • 修改config/gateway_worker.php 图片alt

    'port'  => 443, // 修改端口为443
    'ssl'	=>	true, // 开启ssl
    // 配置证书
    'context'               => [
        'ssl' => [
            'local_cert'  => '/www/server/panel/vhost/cert/d.a3-mall.com/fullchain.pem', // 也可以是crt文件
            'local_pk'    => '/www/server/panel/vhost/cert/d.a3-mall.com/privkey.pem',
            'verify_peer' => false,
        ],
    ],
  1. nginx配置(以宝塔为例) 图片alt 图片alt
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}
# 这里的backend可以改成自己需要的名称,我自己用的是wss。
upstream wss {
  # 这里的localhost是映射本地服务器,也可以是外网ip,2345是我ws开启的端口。
  server wx.a3-mall.com: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 -d