hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP框架 - Swoole - 正文 请牢记本站网址www.sosophp.cn

laravel怎样运用swoole【swoole】,laravel,使用,swoole

2019-12-12Swoole搜搜PHP网58°c
A+ A-

PHP的异步、并行、高机能收集通信引擎,运用纯C言语编写,供应了PHP言语的异步多线程效劳器,异步TCP/UDP收集客户端,异步MySQL,异步Redis,数据库衔接池,AsyncTask,音讯行列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket效劳器端/客户端、Http2.0效劳器端。

Swoole官网的文档不够雄厚啊,这比较头疼,但大部份的问题都诠释了。假如你对Swoole很感兴趣,那末看看这个Swoole入门教程。Swoole供应了多线程、长衔接等许多牛逼的功用,把php上升到了一个新的台阶,细致的你能够看看入门教程,本文只限于议论Laravel和Swoole的连系。

Swoole为了供应效劳,必需以CLI形式运转,什么是CLI形式呢?假如你Swoole营业代码是写在一个叫server.php的文件中,那末在敕令行下输入php server.php开启。这是比较头疼的事变,由于Laravel框架可不是如许的运转的,那怎样能与Laravel连系呢?没错,自定义一条Artisan Command,就这么简朴。

STEP 1-自定义Command

关于自定义Artisan Commnad,你须要相识的手艺点都在这里,我自定义了一个叫做SwooleCommand的敕令,直接贴症结代码:

fire是进口

在敕令行(CLI)下实行php artisan swoole start即可开启Swoole效劳。剖析一下代码,你能够看到敕令参数包含启动、重启、封闭,我图费事只完成了启动部份,假如须要封闭,在linux中应用kill敕令封闭历程,步骤挺简朴的:

1.实行 ps -aux|grep artisan敕令,猎取pid(有多个历程,杀第一个即可)

2.实行 kill pid敕令,pid是第一步你猎取的

关于Swoole的设置不是本文议论的局限,请移步官网,这里把Swoole效劳用$serv变量进行了保留,是为了背面Laravel发送敕令交互。你能够看到,Swoole的事宜相应代码是如许的:

用Handler处置惩罚事宜相应

假如说fire翻开了Swoole的大门,那末这里的handler就是Swoole与Laravel的传送带,应用本身写的handler,就能够把种种营业逻辑写进Laravel框架中,然后就能够运用Laravel供应的种种高效轻易的功用了。“handler”是一种定名习气,你也能够叫做"callback"、"manager"、"listener",这看你的定名习气了。我没有采纳new的体式格局而是用Laravel的IoC注入App::make,主如果图费事(由于handler的组织器用到了我自定义的数据处置惩罚类,往下看)。

STEP 2-自定义handler

由于是自定义的类,请遵照定名空间,并在composer.json中声明,完了实行composer dump-autoload敕令更新一遍。比方我创建了一个文件夹app\handlers寄存handler,那末在composer.json中看起来是如许的:

autoload不能少

那末handler内里细致干些啥,就由你来决议了。反正和写controller差不多,种种Laravel框架的功用你都能随意用,贴上我的:

上一节我提到我用IoC是由于组织器内里用到了本身的数据处置惩罚类,我把增编削查和其他数据处置惩罚的营业放到Repository中了,没其他缘由,只是如许代码看起来清新一点。云云,应用Swoole吸收数据的流程就算搞定了,那末要想应用Swoole向客户端发送数据该怎样做呢?咳咳,这个轻微贫苦点,须要曲线要领完成,继承看下一节。

STEP 3-发送数据

有两种要领,但都离不开一个缓存kv构造(Laravel自带的Cache功用就够了),保留客户端的地点数据,要不你怎样晓得发到哪里去。我用的是第一种,图费事,发送数据和Swoole就无关了,假如你须要长衔接websocket,这类不实用,老老实实用第二种吧。假如你有更好的方法,请一定要告诉我!

第一种:fsockopen

挺简朴的,和swoole就没关系了,应用Swoole的connection_info函数猎取客户端的IP地点和端口,然后用fsockopen直接发送数据。

第二种:内部端口监听

Swoole支撑监听多个端口,完成的头脑就是应用fsockopen把数据应用内部监听的端口发送过去,然后就能够挪用$serv发送音讯了。这么做的优点就是不须要晓得客户端的现实IP地点和端口,在Cache保留客户端的$fd标识,直接就发数据。采纳这个思绪,请记得iptables把端口翻开。我本身并没有采纳,由于不是长衔接我以为太贫苦。

总结

Swoole异常棒,实在都没怎样用上(项目钱给够再说吧)。你还能够参考官网的设置,将Swoole作为nginx承载代办,听说机能提拔很大。

ki4网,有大批免费的Swoole入门教程,迎接人人进修!

以上就是laravel怎样运用swoole的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
laravel怎样运用swoole【swoole】,laravel,使用,swoole

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章