长连接

宝塔长连接开启方法:

长连接是系统智慧客服功能和后台消息通知需要的
1、先修改宝塔命令行的php版本为当前程序设置的php版本

2、点击网站 找对对应的项目网站

3、依次点击以上步骤 进入到项目根目录

4、点击上图的绿框的终端按钮 进入终端

5、执行启动命令

sudo -u www php think workerman start --d

出现以下提示说明启动成功

注意:

a、绿色框如果现实为tcp 说明后台没有开启wss
需要去后台设置-系统设置-基础配置-wss配置中
开启wss 并上传ssl证书(与宝塔配置的ssl保持一致)

[info]注意:v4.3.1及之后版本去掉了这个ws设置,开启之后显示tcp就可以

然后清除缓存 重启长连接 重启方法见下方第5步
b、黄色框部分为需要放行的端口
需要注意的是 放行端口时服务器安全组和宝塔安全中都需要放行20002和20003端口 20012端口可不放行

[info]注意:v4.3.0及以后版本长链接不需要放行20002和20003端口,请设置代理

    location /notice {
        proxy_pass http://127.0.0.1:20002/;  
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
    location /msg {
        proxy_pass http://127.0.0.1:20003/;  
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

[info]如果同一台服务器安装多个本系统,请修改常链接端口

第一步:程序需要修改:/config/workerman.php

'admin' => [
//协议
'protocol' => 'websocket',
//监听地址
'ip' => '0.0.0.0',
//监听后台消息端口
'port' => 20002,
//设置当前Worker实例启动多少个进程
'serverCount' => 1,
],
'chat' => [
//协议
'protocol' => 'websocket',
//监听地址
'ip' => '0.0.0.0',
//监听客服消息端口 开源版没内置客服系统可以不用修改
'port' => 20003,
//设置当前Worker实例启动多少个进程
'serverCount' => 1,
],

第二步:修改上面代理中的端口

proxy_pass http://127.0.0.1:20002/;  //20002 后台消息通知端口改为和第一步修改代码中的端口一样

第三步:重启命令,进入程序跟目录执行

//1、进入程序跟目录,如果linux宝塔可以点击进入站点目录,上面菜单中有打开命令框,默认就进入到程序跟目录,如果ssh面板中使用一下命令进入程序跟目录 例如:
cd /www/wwwroot/crmeb
//2、一般情况这么执行就可以
php think workerman restart --d
//2、如果存在权限问题,请使用一下命令
sudo -u www php think workerman restart --d

6、重启长连接
出现以下提示说明之前已启动 需要重启

重启的话 使用这个命令

sudo -u www php think workerman restart --d

成功提示跟第4步中的图显示一致