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

swoole协程怎样开启【swoole】,swoole

2019-12-09Swoole搜搜PHP网75°c
A+ A-

Swoole 2.0正式版宣布了。2.0版本最大的更新是增加了对协程(Coroutine)的支撑。正式版已同时支撑PHP5和PHP7。

基于Swoole2.0协程PHP开发者能够已同步的体式格局编写代码,底层自动举行协程调理,转变为异步IO。

处理了传统异步编程嵌套回调的问题。 (引荐进修: swoole视频教程)

与Node.js(ES6+)、Python等言语运用yield/generator、async/await的完成体式格局比拟,Swoole协程无需修正代码增加分外的关键词。

与Go言语的goroutine比拟,Swoole协程是内置式的,应用层代码无需增加go关键词启动协程,只须要运用封装好的协程客户端即可,运用更简朴。别的Swoole协程的IO组件在底层内置了超时机制,不须要运用庞杂的select/chan/timer完成客户端超时。

现在Swoole底层内置的协程客户端组件包含:udpclient、tcpclient、httpclient、redisclient、mysqlclient,基本涵盖了开发者经常使用的几种通信协议。协程组件只能在效劳器的onConnect、onRequest、onReceive、onMessage 回调函数中运用。

运用 swole 协程

怎样运用协程:

运用 go()(\Swoole\Coroutine::create() 的简写) 建立一个协程

在 go() 的回调函数中, 到场协程须要实行的代码, 注重是 非壅塞代码

use Swoole\Coroutine as Co; // 经常使用的缩写体式格局

go(function () { // 建立协程, 回调函数中写须要在协程中实行的代码
    echo "daydaygo";
    Co::sleep(1); // 不能是壅塞代码
});

协程

上文提到的, 运用 go() 建立一个协程

swoole server 中, 底层自动在 onRequet, onReceive, onConnect 等事宜回调之前自动建立一个协程

开启 enable_coroutine 参数后的影响局限: 重要还包含 Timer 定时器

运用 task_enable_coroutine 开启的协程版 Task 历程, 会在 onTask 回调之前自动建立一个协程

历程和历程池支撑开启协程, 开启后建立的子历程会自动建立协程

// tcp/udp server, 能够在此基本可封装 rpc
$s = new \Swoole\Server();
// http server, 替换传统的 fpm
$s = new \Swoole\Http\Server();
// 开启 http2 支撑: https://wiki.swoole.com/wiki/page/326.html
$s = new \Swoole\Http\Server();
$s->set([
    'open_http2_protocol' => true,
]);
// 进而能够完成基于 http2 的效劳, 比方 grpc
// websocket server
$s = new \Swoole\WebSocket\Server();

以上就是swoole协程怎样开启的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
swoole协程怎样开启【swoole】,swoole

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