这篇文章主要介绍“Laravel中如何接入workerman”,在日常操作中,相信很多人在Laravel中如何接入workerman问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Laravel中如何接入workerman”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
composerrequireworkerman/gateway-worker-vvv
通过下列命令,在AppConsoleCommands下创建命令行文件,并将下方代码复制到文件中。
phpartisanmake:commandWorkermanCommand
argument('action'); $argv[0]='wk'; $argv[1]=$action; $argv[2]=$this->option('d')?'-d':''; //-d守护模式,不会因为关闭系统命令页面而被杀掉进程。没有-d则关闭命令页面直接退出进程 $this->免费云主机域名;start(); } privatefunctionstart() { $this->startGateWay(); $this->startBusinessWorker(); $this->startRegister(); Worker::runAll(); } privatefunctionstartBusinessWorker() { $worker=newBusinessWorker(); $worker->name='BusinessWorker'; $worker->count=1; $worker->registerAddress='127.0.0.1:1236'; $worker->eventHandler=AppEvents::class;//用作监听事件的文件 } privatefunctionstartGateWay() { //因为小程序等一些平台,要求使用wss进行socket,所以,这里需要配置下wss //此处的cert.pem和key.key是域名的证书文件 $content=array( 'ssl'=>array( 'local_cert'=>public_path('cert.pem'), 'local_pk'=>public_path('key.key'), 'verify_peer'=>false ) ); $gateway=newGateway("websocket://0.0.0.0:2346",$content); //如果不需要wss,则不用加入content这个参数 $gateway->transport='ssl';//不需要wss,也不用加入这个参数。 $gateway->name='Gateway'; $gateway->count=1; $gateway->lanIp='127.0.0.1'; $gateway->startPort=2300; $gateway->pingInterval=30; $gateway->pingNotResponseLimit=0; $data=array( 'type'=>'heart' ); $gateway->pingData=json_encode($data,true); $gateway->registerAddress='127.0.0.1:1236'; } privatefunctionstartRegister() { newRegister('text://0.0.0.0:1236'); } }
创建一个app/Events.php文件来监听处理Workman的各种事件
在命令行里面执行,支持的命令有 start | stop | restart,后续加 -d 的意思是守护模式【daemon】
phpartisanworkmanstart-d1、在LINUX环境中使用。2、有可能会启动失败,此时,请检查php中,是否禁用了pcntl开头的相关方法。在 php配置文件中查找到disable_functions,将所有pcntl开头的方法全部删除。到此,关于“Laravel中如何接入workerman”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!
这篇文章主要介绍“php如何实现定位功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法免费云主机域名简单快捷,实用性强,希望这篇“php如何实现定位功能”文章能帮助大家解决问题。 php实现定位功能的方法:1、注册成为百度用户,成为地图开放平台开发…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。