旗下导航:搜·么
当前位置:网站首页 > PHP框架 > Workerman > 正文

workerman没法socket怎么办【workerman】,workerman

作者:搜搜PHP网发布时间:2019-12-14分类:Workerman浏览:73


导读:workerman没法socket怎么办?Workerman是一款纯PHP开发的开源高性能的PHPsocket效劳器框架。被普遍的用于手机app、手游效劳端、网络游戏效...

workerman没法socket怎么办?

Workerman是一款纯PHP开发的开源高性能的PHP socket 效劳器框架。被普遍的用于手机app、手游效劳端、网络游戏效劳器、聊天室效劳器、硬件通信效劳器、智能家居、车联网、物联网等范畴的开发。然则在设置workerman情况下,不免有些意想不到的毛病,下面小编整顿网上材料并整合本身碰到的问题,给出以下几种经常运用的处理方案。

引荐: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怎么办的细致内容,更多请关注ki4网别的相干文章!

标签:workerman