Gateway-Worker启动失败或者启动无法正常使用的几种方法
Workerman是一款开源高性能异步PHP socket即时通讯框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组件。
环境
1. CentOS 7.0
2.ThinkPHP 5.1
3.Workman 3.5.20
问题
1. ThinkPHP5.1以后,不能将vendor中的包(workman也在其中)复制后直接使用里面的类,在项目刚搭建的时候可以将需要的包写在composer.json中后composer install,或者composer require flc/dysms 等。
2. workman安装成功,基本的业务功能也写完了,进入服务器找到项目的根目录,输入 php think worker:gateway -d,或者 php think worker:gateway start。

3. 可能启动成功,输入 php think worker:gateway status 查看进程的信息。

4. 服务端成功后,上面"websocket://0.0.0.0:9502“ 在客户端如果连接出现 ”WebSocket connection to 'ws://x.x.x.x:2346/' failed: Error in connection establishment:net::ERR_NAME_NOT_TIMED_OUT“,表示防火墙拦住了设置的端口。
方法:如果CentOS安装了宝塔面板,安全->添加端口->放行。如果使用命令添加,最后 firewall-cmd reload 命令重启防火墙即可。

5. 启动成功,客户端通过websocket连接也没有报错,但就是发送消息过来,后端的Events中OnMessage事件一直接收不到消息。问题就有可能就是Events文件中有语法错误或者什么异常。
方法:去vendor文件夹中找到workman的workman.log,查看错误的地方在哪里再修改即可解决。

6. 如果启动后出现PHP Warning: stream_socket_server(): unable to connect to tcp://xx.xx.xx.xx:xxxx (Address already in use) in /home/workerman-chat/Workerman/Worker.php on line xxxx
方法:通过命令netstat -anp | grep 端口号来找出哪个程序占用了端口,然后关闭对应程序释放端口。
7. 如果启动后出现Waring stream_socket_server has been disabled for security reasons in ...
方法:找到运行的PHP版本的php.ini ,禁用函数stream_socket_server去除,宝塔操作如下。

8. 如果启动后出现PHP Warning: stream_socket_server(): unable to connect to tcp://0.0.0.0:xxx (Permission denied)
方法:使用大于1024的端口或者使用root用户启动服务。
9. PHP Warning: stream_socket_server(): unable to connect to tcp://xx.xx.xx.xx:xxx (Cannot assign requested address) in /home/GatewayWorker/Workerman/Worker.php on line xxxx
方法:启动脚本ip参数写错,不是本机ip,请填写本机ip机或者填写 0.0.0.0(表示监听本机所有ip)即可解决。提示:Linux系统可以通过命令 ifconfig查看本机所有网卡ip。如果您是腾讯云用户,注意您的公网ip实际是代理服务器ip,公网ip并不属于你的服务器,所以无法通过公网ip绑定,但是可以通过0.0.0.0来绑定。

Gateway-Worker启动失败或者启动无法正常使用的几种方法的更多相关文章
- vue自定义指令,比onerror更优雅的方式实现当图片加载失败时使用默认图,提供三种方法
首先,来看下效果图(演示一下图片正常加载与加载失败时的效果) 在线体验地址:https://hxkj.vip/demo/vueImgOnerror/ 一.常规方法解决 我们都知道,img标签支持one ...
- IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页
因为修改过管理员账号的密码后重启服务器导致IIS无法启动,出现已下异常 1.解决:"启动Windows Process Activation Service时,出现错误13:数据无效&quo ...
- winmail服务器启动失败 无法启动
1.解决句柄问题:打开命令行:开始 -> 运行-> 输入 cmd -> 确定.切换命令目录至winmail的服务目录,我的是:E:\htdocs\Winmail\server\> ...
- nginx 子进程 woker process 启动失败的问题
问题: 重启nginx服务,worker process 子进程启动失败,启动的都是master进程: 负载急速升高(平常都是4-5),占用CPU资源多的前十进程都是nginx : nginx 错误日 ...
- WinCE启动失败的原因与解决办法分析
本文通过一个真实的嵌入式项目进行说明.文中的嵌入式系统用的是ARM处理器+WinCE平台,项目的目的是要把WinCE平台从旧版本移植到WinCE6.0平台上.但结果是这个WinCE系统在启动的时候经常 ...
- XAMPP中Apache和Mysql启动失败问题总结
一.Apache启动失败 xampp启动时显示的错误为: 9:52:41 [Apache] Attempting to start Apache app... 9:52:41 [Apache] ...
- filebeat 启动失败
最近在ELK架构中启动filebeat时,启动失败,检查启动节点不存在 查看/var/log/message中报错日志,有如下内容 filebeat: Exiting:error loading co ...
- nginx启动失败(bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket...permissions)
nginx启动失败 nginx启动失败(bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a ...
- 一个或多个筛选器或者Listeners启动失败 的问题探索以及解决方案
2020年10月9日更新 经过本人对SSM框架理解的加深和对IDEA工具使用的熟悉,现提出一种新的解决办法,以前的解决办法可能存在问题 1. 问题描述: 使用IDEA作为开发工具,使用Maven作为项 ...
随机推荐
- 协程,yield,i多路复用,复习
课程回顾: 线程池 队列:同一进程内的队列 先进先出 后进先出 优先级队列 线程池中的回调函数是谁在调用? 线程池中的回调函数是子线程调用的,和父线程没有关系 进程池中的会点函数是父进程调用的,和子进 ...
- Pandas | 24 常用图形绘制
基本绘图:绘图 Series和DataFrame上的这个功能只是使用matplotlib库的plot()方法的简单包装实现. import pandas as pd import numpy as n ...
- Selenium XPath
目录 1.selenium是什么呢? 安装 设置浏览器引擎 2.基本使用 3.等待元素被加载 4.选择器 2. find_element_by_tag_name 3. find_element_by_ ...
- redhat quay 集成镜像构建
redhat quay 可以类似docker hub 那样进行镜像的构建,以下是一个学习,但是在测试中发现流程是可以通的,但是 quay 在对于dockerfile 内容处理上有bug,造成build ...
- SDSC 2018 day2解题报告
目录 10.12考试总结 T1 最近公共祖先 错误原因 T2 即时战略 T3 欧皇 10.12考试总结 T1 最近公共祖先 预估得分: 100 实际得分: 20 最大得分: 100 用时:1小时10分 ...
- Kafka Rebalance机制分析
什么是 Rebalance Rebalance 本质上是一种协议,规定了一个 Consumer Group 下的所有 consumer 如何达成一致,来分配订阅 Topic 的每个分区. 例如:某 G ...
- 虚方法(virtual)\抽象方法(abstract)\接口(interface)的区别
转自:https://www.cnblogs.com/fantaohaoyou/p/9402657.html 虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢? 1. 虚方法必须有实现部分,抽 ...
- 第08组 Beta冲刺(4/5)
队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 ? 测试新功能中 展示GitHub当日代码/文档签入记录 接下来的计划 ...
- 对C++11中的`移动语义`与`右值引用`的介绍与讨论
本文主要介绍了C++11中的移动语义与右值引用, 并且对其中的一些坑做了深入的讨论. 在正式介绍这部分内容之前, 我们先介绍一下rule of three/five原则, 与copy-and-swap ...
- 《Linux就该这么学》培训笔记_ch19_使用PXE+Kickstart无人值守安装服务
<Linux就该这么学>培训笔记_ch19_使用PXE+Kickstart无人值守安装服务 文章最后会post上书本的笔记照片. 文章主要内容: 无人值守系统 部署相关服务程序 配置DHC ...