{template "web/common/header"}

## WEBSOCKET

- 参数配置
{if $this->settings['type']=='local'}
- 域名白名单
{/if}
- 本地安装步骤

本地SOCKET安装步骤

- 1.创建站点
- 2.安装Go环境
- 3.配置SOCKET站点
- 4.添加计划任务
- 安装遇到困难？

1 准备一个SOCKET通讯专用的域名并解析到当前服务器
2 到安全组开放服务器的3001端口，如果宝塔开启了防火墙，还需要到宝塔的【安全】中去放行3001端口
3 到宝塔创建新站点:
3.1 域名填写上一步骤准备的域名
3.2 根目录请选择或直接填写 {php echo str_replace("\\",'/',base_path('swasocket'));}
3.3 PHP版本必须选择纯静态
{if $_W['ishttps']}
4 为该站点配置HTTPS并强制开启
{/if}
使用宝塔面板的【终端】功能或ssh远程管理工具登录服务器后按步骤进行如下操作
1 下载GO安装包

    yum install -y wget
    wget https://studygolang.com/dl/golang/go1.20.1.linux-amd64.tar.gz
    tar -C /usr/local -xzf go1.20.1.linux-amd64.tar.gz
    rm -f go1.20.1.linux-amd64.tar.gz

2 添加环境变量

    vim /etc/profile

这时候会进入文件编辑器，输入i编辑状态，在最后一行添加如下代码

    export GOROOT=/usr/local/go
    export GOPATH=/home/gocode
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

编辑完成后按一次键盘的ESC键，再按Shift + :;键，在响应的输入框中输入wq保存退出
3 重新加载环境变量

    source /etc/profile

4 运行SOCKET项目

    cd {php echo str_replace("\\",'/',base_path('swasocket'));}

    go env -w GOPROXY=https://goproxy.cn,direct
    go mod init swasocket
    go mod tidy
    go mod vendor

    nohup ./run start &

宝塔面板的【站点】点击编辑该站点，在【配置文件】中参考如下代码设置
下方以宝塔内的NGINX服务器为例，其它系统请咨询专业技术人员，或联系售后提供有偿安装服务

    //注：以下内容需要根据站点实际情况调整，未开启https则监听80端口，否则监听443端口
    //在【站点】→【配置文件】的 server 代码内加入如下代码,把其中的http://xxxxxxxxx改为您的域名或者IP地址
        location /api {
              proxy_pass http://xxxxxxxxx:3001;
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection keep-alive;
              proxy_set_header Host $host;
              proxy_cache_bypass $http_upgrade;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-Proto  $scheme;
        }
        location /wss{
            proxy_pass http://xxxxxxxxx:3001;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_read_timeout 1200s;
        }

到宝塔面板的【计划任务】，添加新的Shell脚本计划任务，设定每1分钟执行一次。脚本内容请直接复制如下代码：

    cd {php echo str_replace("\\",'/',base_path('swasocket'));}

    ./run start

{template "web/common/footer"}