swoole第一节
swoole的由来
PHP这个语言有很大的局限性,甚至可以说PHP语言只写做Web程序。网络 通信框架、异步、多线程,协程,多进程,这些特性正是php所不完善的功能( 虽然官方提供很多基础函数可以实现这些功能,PHP语言本身也提供了一些可以 实现进行底层操作和网络通信的扩展,比如sockets、 libevent, pcntl之类),普 通的phper也不具备这些特性的基础认知,基于此 Swoole 应运而生。
Swoole是一个完全使用C语言编写面向生产环境的 PHP 异步网络 通信引擎,使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、 Unix Socket、 HTTP, WebSocket 服务。Swoole 可以广泛应用于互联网 、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、 智能家居等领域。使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
Swoole特性
PHP的 协程 高性能网络通信引擎,使用C/C++语言编写的php扩展,提供了多种通信协议的 网络服务器和客户端模块。
包括:
TCP/UDP/UnixSock 服务器端
Http/WebSocket/Http2.0服务器端
协程 TCP/UDP/UnixSock
协程 MySQL
协程 Redis
协程 Http/WebSocket
协程 Http2
AsyncTask (异步任务)
毫秒定时器
协程文件读写
PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步IO。 Swoole4协程仅支持PHP7,无法在PHP5中使用
异步回调模块己过时,目前仅修复 BUG,不再进行维护,且在4.3版本中移除了异 步模块。请使用 Coroutine 协程模块。
workerman swoole区别
workerman纯php swoole C/C++语言编写 作为php的扩展
workerman 多进程 swoole 协程 多进程 多线程
swoole性能优于workerman
workerman linux swoole 线上linux
swoole并没有用lbevent,所以不需要安装libevent
swoole并不依赖php的stream/sockets/pcntl/posix/sysvmsg等扩展
Swoole-1.x需要 PHP-5.3.10 或更高版本
Swoole-4.x需要 PHP-7.0.0 或更高版本
单数版本为特性新增版本,主要工作是新增功能特性、代码重构、结构调整。可 能会带来一些BUG
双数版本为问题修复版本,主要工作是修复现有的己知问题、提升性能、完善细 节。稳定性更高
swoole安装方式
第一种
–enable-swoole 编译 php直接编译进去
第二种
pecl install swoole
第三种
docker 安装
第四种(推荐)
下载 :http://pecl.php.net/package/swoole
/usr/local/php/bin/phpize
/configure --with-php-config=/usr/local/php/bin/php-config --enable-openssl enable-http2 --enable-sockets --enable-mysqlnd
编译参数:https://wiki.swoole.com/wiki/page/437.html
make && make install O
extension 二 swoole.so
php -m 或者 phpinfo()
php -ni swoole lampol