环境
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来绑定。