1、下载GetwayWorker包:下载workerman及相关应用

把解压好的文件放在服务器上(本人放在了项目里)

2、开始之前请先仔细看GetwayWorker手册:序言 · GatewayWorker手册 · 看云

红框圈出来的必看

3、创建wss服务(示例一):

文档地址:创建wss服务 · GatewayWorker手册 · 看云

  1. 前端链接WebSocket:

    // 链接 GetWayWorker
    var ws = new WebSocket('wss://www.xxxx.cn:8282');
  2. GatewayWorker\Applications\YourApp\start_gateway.php配置:
    $context = array(// 更多ssl选项请参考手册 http://php.net/manual/zh/context.ssl.php'ssl' => array(// 请使用绝对路径'local_cert'                 => '磁盘路径/server.pem', // 也可以是crt文件'local_pk'                   => '磁盘路径/server.key','verify_peer'               => false,// 'allow_self_signed' => true, //如果是自签名证书需要开启此选项)
    );// gateway 进程,这里使用Text协议,可以用telnet测试
    $gateway = new Gateway("Websocket://0.0.0.0:8282",$context);// 设置transport开启ssl,websocket+ssl即wss
    $gateway->transport = 'ssl';
  3. 启动GetwayWorker:
    以debug(调试)方式启动:php start.php start
    以daemon(守护进程)方式启动: php start.php start -d

4、创建wss服务(示例二):

  1. 前端链接WebSocket:

    var ws = new WebSocket('wss://www.xxxx.com/wss');
    ws.onopen = function() {alert("连接成功");};
  2. GatewayWorker\Applications\YourApp\start_gateway.php配置:
    // $gateway = new Gateway("tcp://0.0.0.0:8282");
    // tcp改成Websocket
    $gateway = new Gateway("Websocket://0.0.0.0:8282");
  3. Nginx配置如下(因为我start_gateway.php 中用的是8282端口,所以下方配置的时候也要是8282端口)别忘记开放8282端口:
    server {listen 443 ssl;ssl_session_timeout 5m;ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;location /wss {proxy_pass  http://127.0.0.1:8282;proxy_redirect     off;proxy_set_header   Host             $host;proxy_set_header   X-Real-IP        $remote_addr;proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_max_temp_file_size 0;proxy_connect_timeout      90;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";add_header Cache-Control no-cache;add_header X-Cache $upstream_cache_status;}}
  4. 伪静态配置如下(和上方Nginx配置相同):
  5. 启动GetwayWorker:
    以debug(调试)方式启动:php start.php start
    以daemon(守护进程)方式启动: php start.php start -d

报错信息汇总:

  • 启动GetwayWorker时报类似错误:需要在php中取消禁用的函数相关函数:上图取消禁用函数  pcntl_signal_dispatch
  • Error during WebSocket handshake: Unexpected response code: 502
    没有启动GetwayWorker
  • Error during WebSocket handshake: Unexpected response code: 200
    Nginx配置有问题,或者是前端链接WebSocket时路径有问题,返回看上方的配置是否一样
  • Error during WebSocket handshake: Unexpected response code: 404
    Nginx配置有问题,网站的伪静态是否配置
  • Error in connection establishment: net::ERR_CONNECTION_REFUSED 
    没有启动GetwayWorker
  • 关于停止失败,手册里面列举了几种可能性:停止失败 · workerman手册 · 看云

Linux+Nginx+PHP 宝塔配置GetwayWorker 踩过的坑相关推荐

  1. linux nginx反向代理配置

    linux  nginx反向代理配置 location ^~/api/ {proxy_pass http://192.168.1.50:82/; }

  2. 关于Redis配置主从复制踩到的坑,主机不显示从机的连接信息

    关于Redis配置主从复制踩到的坑!!! 设置单机集群的时候,两台从机都显示连接到主机,但是主机显示连接到的从机数量为0: 主机信息: 从机80: 从机81: 查看从机log日志文件发现错误信息: M ...

  3. linux nginx安装以及配置

    一.Nginx简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为 ...

  4. linux nginx rpm 安装配置,Centos下安装nginx rpm包

    1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...

  5. 超详细Linux -- nginx负载均衡配置

    Nginx 负载均衡应用配置 Nginx实现负载均衡的方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,后端服务器宕机时,能被自动删除,且请求不会受影响. 2.weight权重 指 ...

  6. linux nginx部署项目配置域名

    一.把项目打包(jar) 二.把jar包通过xshell上传 三.编辑nginx.conf文件,配置域名,每配置一个域名就复制一份里面的server 1 代表你所要配置的域名 2 代表你项目浏览器访问 ...

  7. linux nginx 安装 及 配置

    一:下载nginx(下载可能会有点慢,耐心等待) 官网地址:http://nginx.org/en/download.html 二:解压并安装 安装依赖(安装过的跳过) yum -y install ...

  8. Nginx Sticky的使用及踩过的坑(nginx-sticky-module)

    #什么是Sticky?# 为了理解Sticky的工作原理,我们可以先考虑一个问题:负载均衡怎么做? DNS解析,在域名解析时分配给不同的服务器IP: IP Hash,根据客户端的IP,将请求分配到不同 ...

  9. Unity2020打包安卓时配置环境踩过的坑(JDKSDKNDKGradle详解)

    之前的打包环境都是吃现成的, 这次新公司需要自己配置,踩了坑记录一下,以防之后遗忘. 如果是 用Hub管理的项目 可以通过Hub 去下载 安装内置的Open JDK ,SDK 等很方便也稳定. 没有用 ...

最新文章

  1. 设计模式在工作中的实践
  2. PHP mac xdebug配置
  3. mysql-sql命令
  4. C++中动态定义一维数组,二维数组,三维数组的方法
  5. [******] 链表问题:将单向链表按某值划分成左边小、中间相等、右边大的形式...
  6. NeurIPS'21|MixSeq:从微观数据到宏观时序预测的桥梁
  7. java蓝牙开发_Android蓝牙开发全面总结
  8. 手机怎么打开psd文件(实用方法)
  9. [深度学习] 自然语言处理 ----- Attention机制中的Q,K,V介绍
  10. 采用卡尔曼滤波计算电池SOC
  11. JavaWeb——动态 web 资源开发
  12. 八爪鱼怎样导入mysql_八爪鱼采集数据导出sqlserver数据库(手动、自动两种方式) - 八爪鱼采集器...
  13. 银行业智能运维的探索与实践
  14. Python学习知识清单(基础+进阶)
  15. 计算机内存条多大容量,电脑内存条到底怎么选?选多大容量最合适?
  16. 06-08 无人机怎么拍摄VR全境图?
  17. 零基础学C语言(C语言入门)
  18. mysql 全角空格_数据库使用技巧――SQL全角与半角切换_MySQL
  19. 英特尔前高管的IC职业生涯分享(文字版)写给想进入IC设计的同学们!
  20. opencv c++ 图像噪声及去噪

热门文章

  1. 使用idea如何把代码推送到两个git仓库
  2. 200个查理芒格思维模型---多元思维模型
  3. Qt之如何获取主窗口的指针
  4. 二进制fuzz测试,拒接服务漏洞刷洞技巧
  5. 蓝牙耳机CE认证项目
  6. 遗传算法优化matlab,遗传算法优化相关MATLAB算法实现
  7. 前端vue开发连续签到功能
  8. 关于教育类网站的安全防护方案
  9. 快递查询软件,教你批量查询多家不同快递公司的物流信息并导出
  10. 【论文复现】中值滤波改进:Different Applied Median Filter(DAMF)