前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swoole2.0试用说明

swoole2.0试用说明

作者头像
用户1246234
发布2020-01-22 09:44:55
5860
发布2020-01-22 09:44:55
举报
文章被收录于专栏:Swoole开源项目Swoole开源项目

Swoole在2.0开始内置协程的能力,提供了具备协程能力IO接口.最好的好处是开发者可以以同步编码的方式达到异步IO的效果.

Swoole2.0安装要求

  • php版本要求:>= 5.5, 暂不支持PHP7
  • 基于swoole_server或者swoole_http_server进行开发,目前支持在onRequet, onReceive, onConnect回调中使用协程

安装过程

  1. 先安装第三方的异步Redis库https://github.com/redis/hiredis 以支持redis操作
  2. 启用–enable-async-redis –enable-coroutine

安装常见问题

1.找不到libhiredis.so.0.13 ,确保安装了hiredis前提下.增加/etc/ld.so.conf.d/lib.conf文件。内容”/usr/local/lib”.然后运行ldconfig命令

2.gcc 4.4下如果在编译swoole的时候(即make阶段),出现gcc warning

dereferencing pointer ‘v.327’ does break strict-aliasing rules、dereferencing type-punned pointer will break strict-aliasing rules

请手动编辑Makefile,将CFLAGS = -Wall -pthread -g -O2替换为CFLAGS = -Wall -pthread -g -O2 -fno-strict-aliasing,

然后重新编译make clean;make;make install

安装完成后,请用php -m 来确认swoole是否安装成功.

第一个代码示例.

代码语言:javascript
复制
<?php$serv = new swoole\http\server("0.0.0.0", 1215);$serv->set([
       'worker_num' => 1,]);$serv->on('Request', function($request, $response) {
   $response->header("X-Server", "Swoole");
   $cli = new Swoole\Coroutine\Http\Client('127.0.0.1', 80);
   $cli->setHeaders([
       'Host' => "test.raventech.cn",
       "User-Agent" => 'Chrome/49.0.2587.3',
       'Accept' => 'text/html,application/xhtml+xml,application/xml',
       'Accept-Encoding' => 'gzip',
   ]);
   $cli->set([ 'timeout' => 2]);
   $cli->get('/sleep1.php');
   $str =  $cli->body;
   $cli->close();
   $response->end("<h1>Hello Swoole!</h1>".$str);});$serv->start();

代码大致的功能是,以一个进程启动一个http server,访问一个url.这个url会sleep(1)

模拟并发

代码语言:javascript
复制
<script src="http://123.56.145.253:1215/?id=1"></script><script src="http://123.56.145.253:1215/?id=2"></script><script src="http://123.56.145.253:1215/?id=3"></script><script src="http://123.56.145.253:1215/?id=4"></script><script src="http://123.56.145.253:1215/?id=5"></script><?php
echo "123";

访问的效果

通过这个示例,我们已经可以明白swoole2.0的好处了。原来为了实现高并发,用的是IO复用,是各种回调。现在内置了协程,实现了高性能的同时代码看起来也是同步的!期待swoole2.0越来越强大.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Swoole开源项目 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档