workerman无法socket的解决方法

发布时间:2021-01-16 12:38:21 作者:小新
来源:亿速云 阅读:338

这篇文章主要介绍workerman无法socket的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

workerman无法socket怎么办?

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。但是在配置workerman情况下,不免有些意想不到的错误,下面小编整理网上资料并整合自身遇到的问题,给出以下几种常用的解决方案。

现象1

启动后报错类似如下:

php start.php start
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

关键字: Address already in use

失败原因:

端口被占用,无法启动。

可以通过命令netstat -anp | grep 端口号来找出哪个程序占用了端口。

然后停止对应的程序释放端口解决。

如果不能停止对应端口的程序,可以通过更换workerman的端口解决。

如果是Workerman占用的端口,又无法通过stop命令停止(一般是丢失pid文件或者主进程被开发者kill了导致),可以通过运行以下两个命令杀死Workerman进程。

killall php
ps aux|grep WorkerMan|awk '{print $2}'|xargs kill -9

现象2

启动后报错类似如下:

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

关键字:Cannot assign requested address

失败原因:

启动脚本ip参数写错,不是本机ip,请填写本机ip机或者填写 0.0.0.0(表示监听本机所有ip)即可解决。

提示:Linux系统可以通过命令 ifconfig查看本机所有网卡ip。

如果您是腾讯云用户,注意您的公网ip实际是代理服务器ip,公网ip并不属于你的服务器,所以无法通过公网ip绑定,但是可以通过0.0.0.0来绑定。

现象3

启动后报错类似如下:

Waring stream_socket_server has been disabled for security reasons in ...

失败原因:

stream_socket_server 函数被php.ini禁用

解决方法

1、运行php --ini 找到php.ini文件

2、打开php.ini找到disable_functions一项,将stream_socket_server禁用项删掉

现象4

启动后报错类似如下:

PHP Warning:  stream_socket_server(): unable to connect to tcp://0.0.0.0:xxx (Permission denied)

失败原因

linux下监听端口如果小于1024,需要root权限。

解决办法

使用大于1024的端口或者使用root用户启动服务。

现象5

启动后报错类似如下:

WebSocket connection to 'ws://x.x.x.x:2346/' failed: Error in connection establishment:net::ERR_NAME_NOT_TIMED_OUT

失败原因

服务器防火墙挡住了设置的端口,这里于2346为例。

解决办法

进入Linux vim编辑服务器防火墙文件,添加你需要开发的服务器端口保存后重启防火墙。

[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# iptables -nvl  #查看允许访问的端口

[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# vim /etc/sysconfig/iptables   #编辑

[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# /etc/init.d/iptables restart  #重启

workerman无法socket的解决方法

以上是“workerman无法socket的解决方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. java中socket乱码的解决方法
  2. workerman端口不通的解决方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

workerman socket

上一篇:workerman无法使用的解决方法

下一篇:workerman能不能支持协程

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》