swoole 订阅
Swoole是一个面向生产环境的 PHP 异步网络通信引擎,使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升。 [1] 展开全文
Swoole是一个面向生产环境的 PHP 异步网络通信引擎,使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升。 [1]
信息
特    点
可以在很短的时间内完成
类    别
面向生产环境的PHP异步网络通信引擎
运行环境
Linux Windows Mac FreeBSD Unix
中文名
Swoole
性    质
一种PHP高级Web开发框架
目    的
提升网站的开发效率
Swoole简介
Swoole不是一个像Zend Framework、CakePHP、Yii、symfony、ThinkPHP等一样的框架,也不是一个像WordPress、Drupal、Discuz、UChome等开源产品看齐的项目。 Swoole的目标是向Java框架、Ruby On Rails、Python DjangoPylons等一流框架发起挑战。PHP版本支持:PHP5.3+支持的数据库:MS SQL Server、MySQL、IBM DB2、Oracle、Interbase 、SQLite、PostgreSQL、ODBC支持的运行方式:Web、Cli命令行脚本、PHP-GTK GUI。 [2] 
收起全文
精华内容
参与话题
问答
  • swoole

    2019-08-07 11:58:40
    本系统参考osgochina/Donkey...基于swoole的定时器程序,支持秒级处理. 异步多进程处理. 完全兼容crontab语法,且支持秒的配置. 去中心-多客户端模式,能够横向扩展. web界面管理,增删改查任务,完整的权限控制.
  • Swoole

    2019-12-02 16:05:34
    laravel-swoole easyswoole【推荐、框架】 swoft 【也不错】 laravel-s 【学院君有教程、插件】 hyperf 【也不错】 one laravoole mix easyswoole、hyperf、mixphp 这些都是基于 Swoole 的框架,而 TP5、...

    laravel-swoole

    easyswoole 【推荐、框架】

    swoft  【也不错】

    laravel-s   【学院君有教程、插件】

    hyperf   【也不错】

    one

    laravoole

    mix

     

    easyswoole、hyperf、mixphp 这些都是基于 Swoole 的框架,而 TP5、Laravel、Yii 这些是基于 PHP-FPM 的框架,但是上面有些是laravel的扩展包。

     

    webim  【网页即时聊天工具,swoole创作者韩天峰写的】

    SPF (Swoole PHP Framework)【世界第一款基于Swoole扩展的PHP框架,开发者是Swoole创始人】

    展开全文
  • Swoole Swoole is an event-driven asynchronous & coroutine-based concurrency networking communication engine with high performance written in C++ for PHP. ✨Event-based The network layer in ...
  • Feature: Support Swoole

    2020-12-02 12:32:57
    <div><p>Swoole has various very interesting concepts. Its crazy fast, async everything (php, mysql, redis etc), has support for coroutines og websockets. <p>I opened a ticket at Swoole repo to ...
  • SwooleDistributed 是swoole分布式系统的实现,他提供了一套基于swoole扩展的分布式通讯框架。结构图:SwooleDistributed 不仅提供了分布式搭建的必要设施,还提供了4大组件帮助你提高编写代码的效率,你既可以部署...
  • swoole-2.1.0 编译报错

    2018-02-26 02:05:39
    2.1.0/swoole_trace.c: In function ‘trace_dump’: /usr/local/swoole-2.1.0/swoole_trace.c:461:47: error: ‘zend_execute_data’ has no member named ‘function_state’ if (0 > trace_get_long(execute_data...
  • <p>Swoole is getting a lot of attention lately (https://laravel-news.com/laravel-swoole) so we might want to start integrating apiato with it? <p>Tests on a macbook increased the requests/second from ...
  • swoole文档

    2018-02-27 11:59:40
    swoole 文档,方便开发者查询~~~~~~~~~~~~~~ swoole 文档,方便开发者查询
  • Swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发...利用Swoole框架,开发一个复杂的Web功能,可以在很短的时间内完成了。(easy-swoole.pdf)
  • Support swoole_http_request

    2020-11-28 14:40:29
    <div><p>This PR adds a <code>ServerRequestFactory::fromSwoole</code> static function to transform a <a href="https://www.swoole.co.uk/">Swoole</a> request (<code>swoole_http_request</code>) into a PSR...
  • 本课程是基于Swoole 4.x的实战课程 目前市面上基于Swoole的框架很多,学习难度各有高低。因此本课程从Swoole 框架基础入手 讲解下如何开始自主开发一个http 框架。 由于本课程课时较多,...
  • <p>Still rocking the Siler and Swoole... 🚀 <p>Got some PHP Warnings when using - Swoole\cors(); <pre><code> swoole_1 | PHP Warning: Swoole\Http\Response::header(): ...
  • ubuntu 安装swoole失败

    2019-06-17 14:34:09
    报错:PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/lib/php/20180731/swoole.so (/usr/lib/php/20180731/swoole.so: undefined symbol: _zval_ptr_dtor), /usr/lib/...
  • swoole2.0.9源代码下载,swoole是一个php扩展,下载后可以直接安装swoole
  • swoole-了解swoole

    2019-03-28 12:59:51
    什么是swoole swoole是php的异步、并行、高性能网络通信引擎。使用纯C/c++语言编写,提供了php语言的异步多线程服务器。 swoole内置了http/websocket服务器端/客户端、http2.0服务器端。 异步tcp/udp网络客户端,...

    初识swoole

    swoole官网https://www.swoole.com/

    可能需要掌握一些tcp/ip

    • 入门书籍:《tcp/ip网络编程(尹圣雨 韩)》。
    • 深入书籍:《unix环境高级编程(中文第三版)》;《unix网络编程卷1:套接字联网》;《unix网络编程卷2:进程间通信》。

    题外话
    swoole补充了对比其他语言没有的网络编程库,紧接着学习swoft框架,微服务。最后通过swoole可以进一步学习go语言。

    swoole vs workman
    swoole是C语言编写,不依靠php的扩展。workman依赖php的扩展。swoole的特性更丰富、稳定性好一些,但workman可以用来了解背后的基本原理。

    基于swoole扩展的框架

    • swoft 社区比较活跃
    • easyswoole 相对简单 轻量级
    • swooleDistributed

    传统框架和swoole框架
    swoole框架在性能方面比传统框架要高很多,没有性能要求则使用传统框架。

    版本
    已更新至4.3。swoole2.0增加协程。swoole3.0以上版本要求php>=7.0。

    开发工具
    在这里插入图片描述
    这两个还是蛮实用的。
    在这里插入图片描述
    IDE helper包下载后放进任意目录,然后IDE include path即可。
    在这里插入图片描述
    学习swoole 的注意事项

    • swoole一般是linux环境。
    • 阿里云安全组开放协议、端口。服务器如有防火墙,开放端口。

    一些概念

    swoole入门指引
    在这里插入图片描述

    swoole底层是C写的。swoole系列函数可以理解为swoole提供给php的api,php通过swoole系列函数调用swoole的api,来启动swoole服务、注册回调函数等,swoole的事件驱动来执行对应的回调函数。这完全区别于普通的php扩展只提供库函数,而对于swoole,php只是传递的作用,真正的程序控制权是swoole。

    学习swoole的基础知识
    在这里插入图片描述

    linux是必须的。学习swoole需要对进程线程、异步同步、IO复用、reactor模型、进程间通讯、信号等概念有所了解,可学习《tcp/ip网络编程》这本书做简单的理解,通过php对应的扩展,借鉴workman源码来理解机制,这样会对swoole的学习有很大帮助。

    swoole的实现
    手册

    swoole并没有用libevent,所以不需要安装libevent。swoole并不依赖php的stream/sockets/pcntl/posix/sysvmsg等扩展

    libevent是一个事件驱动库,php有对应的event扩展,可帮助理解swoole的io复用和事件机制。
    stream/sockets是网络通讯的工具、可帮助理解swoole的tcp/udp/http。
    pcntl/posix是进程控制扩展,可帮助理解swoole中的多进程、进程间通讯。
    sysvmsg消息队列,可帮助理解swoole中的task模块。

    swoole进程结构
    在这里插入图片描述

    • Master主进程
    • manager管理进程
    • worker子进程
    • task任务进程
    • MainReactor主线程
    • reactor线程组

    Swoole的进程/线程模型:
    在这里插入图片描述
    Swoole程序的执行流程:
    在这里插入图片描述
    这里暂不介绍了,接下来会逐渐涉及。

    Server部分文档概述

    swoole我也是初学,理解不到位的请谅解。

    整体
    在这里插入图片描述

    从server入手

    在这里插入图片描述
    函数列表
    在这里插入图片描述
    这里的意思是$server对象可以调用的函数,接下来理解下这部分。
    比如我们用__construct先创建一个$server

    $server = new Server(
    string $host, //监听的Ip地址,通常为0.0.0.0,监听所有ip地址
    int $port = 0, //端口
    int $mode = SWOOLE_PROCESS,//默认多进程模式
    int $sock_type = SWOOLE_SOCK_TCP);//TCP UDP 默认TCP
    
    // 创建server
    $server=new Swoole\Server("0.0.0.0",6001);
    

    那么函数列表里的函数,是$server调用的。
    可能在外层调用:

    1) server :: __construct 构造函数 创建一个tcp/udp服务器
    $server=new Swoole\Server("0.0.0.0",6001);
    
    2)server->set 为服务器配置选项
    $server->set([
    		'worker_num'=>1, //子进程数量
    	]);
    
    3)server->on 注册事件
    $server->on('connect',function(){
    	echo "new connect!".PHP_EOL;
    });
    
    $server->on('receive',function(){
    	echo "new message received!".PHP_EOL;
    });
    
    $server->on('close',function(){
    	echo "one client closed!".PHP_EOL;
    });
    
    4)server->start 启动服务器
    $server->start();
    

    也可能在回调中调用:server->send server->close

    $server->on('receive',function($server, $fd){
    	$server->send($fd, 'Swoole: '.$data);
        $server->close($fd);
    });
    

    总之函数下的所有函数是$server调用的。

    属性列表
    在这里插入图片描述
    这个没什么好说的,获取配置项,获取主进程pid,获取当前子进程编号id等等。

    配置选项
    在这里插入图片描述
    配置选项在server->set函数中设置,比如设置子进程数量:

    $server->set([
    		'worker_num'=>1,
    	]);
    

    以此类推,放进数组里即可。

    监听端口
    在这里插入图片描述
    监听端口是swoole支持多协议多端口,即一个服务器上(一个php文件代码上)可以支持多个协议的业务,可以监听多个端口,这就厉害了,不用另外创建一个单独的服务器(再写一个php脚本)。

    下面的可选参数,可选回调什么意思呢?
    比如监听一个新的端口:

    //主服务器 $server->
    $server=new Swoole\Server("0.0.0.0",6001);
    $server->set([
    		'worker_num'=>1,
    	]);
    $server->on('connect',function(){
    });
    $server->on('receive',function($server, $fd){
    });
    $server->on('close',function(){
    });
    	
    //监听一个新端口 注意下面都是$port1->
    $port1 = $server->listen("0.0.0.0", 9501, SWOOLE_SOCK_TCP);
    $port1->set([
     	//可选参数
    	]);
    	
    //可选回调
    $port1->on('connect',function(){
    });
    $port1>on('receive',function($server, $fd){
    });
    $port1->on('close',function(){
    });
    

    下面的port1,->set支持的参数,->on支持的回调,是有限制的。它和server不是平级的,也就是说有些参数和回调是server级别的。比如->set([‘worker_num’=>1])是server独有的配置参数,port1不能配置。哪些参数可以配置,哪些不可以配置,文档中有说明,需要注意这点。

    预定义常量
    在这里插入图片描述
    看看就好

    事件回调函数
    在这里插入图片描述
    事件回调函数是在server->on()中配置的。上边已有很多示例了,只需要各自了解使用场景就好。

    好了,整个server的大体已经了解完了

    展开全文
  • t inherit abstract function Swoole\Server\Driver::run() (previously declared abstract in Swoole\Server) in /var/www/html/swoole/libs/Swoole/Server.php on line 5</p> <p>solve: 需要安装php >5.3.3 ...
  • php7.0 swoole扩展

    2018-11-06 18:16:01
    Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新...
  • phpstorm 远程调试基于swoole扩展开发的swoft,easyswoole,hyperf等框架 必须部署在linux环境下的代码库 并且给与了 利用virtualbox 来安装虚拟机,以及使用虚拟机的共享文件夹机制,来达到同步开发的方式方法,即...
  • 有关swoole的websocket的php后台进程,出现很多这类的东西,涂掉的是服务器端的ip和客户端ip,不知道怎么办。。 这种是活着的进程吗?对服务器有影响吗? ![图片说明]...
  • <pre><code>$client = new swoole_client(SWOOLE_SOCK_TCP); if (!$client->connect('127.0.0.1', 9502, -1)) { exit("connect failed. Error: {$client->errCode} "); } $client->send("hello world "); ...
  • yii2 swoole:让yii2运行在swoole上 , 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上

空空如也

1 2 3 4 5 ... 20
收藏数 7,537
精华内容 3,014
关键字:

swoole