swoole
学习swoole的过程
qq_34709713
这个作者很懒,什么都没留下…
展开
-
Swoole---Http服务+Task异步任务
服务端<?phpuse think\Container;class Http{ CONST HOST = "0.0.0.0"; CONST PORT = 8811; public $http = null; public function __construct() { $this->http = new swoole_http_server(self::HOST,self::PORT); $this->原创 2020-05-13 00:43:42 · 698 阅读 · 0 评论 -
Swoole支持TP5框架
<?phpuse think\Container;//引入thinkPhp文件的命名空间$http = new swoole_http_server("0.0.0.0", 8811);//实例化httpserver$http->set( [ 'enable_static_handler' => true, 'document_root' => "/usr/local/var/www/swoole_mooc/thinkphp/public/原创 2020-05-11 00:40:53 · 384 阅读 · 0 评论 -
Swoole---Channel协程通道
Coroutine\Channel通道,用于协程间通讯,支持多生产者协程和多消费者协程。底层自动实现了协程的切换和调度。实现原理通道与 PHP 的 Array 类似,仅占用内存,没有其他额外的资源申请,所有操作均为内存操作,无 IO 消耗底层使用 PHP 引用计数实现,无内存拷贝。即使是传递巨大字符串或数组也不会产生额外性能消耗channel 基于引用计数实现,是零拷贝的Co\run(function(){ $chan = new Swoole\Coroutine\Channel(1);原创 2020-05-08 21:58:14 · 401 阅读 · 0 评论 -
Swoole---WebSocket 服务器(协程风格)
完全协程化的 WebSocket 服务器实现,继承自 Co\Http\Server,底层提供了对 WebSocket 协议的支持Co\run(function () { $server = new Co\Http\Server("0.0.0.0", 8812); //监听全网段地址、端口 $server->handle('/websocket', function ...原创 2020-05-07 22:46:13 · 833 阅读 · 2 评论 -
Swoole---Http(协程风格)
完全协程化的 HTTP 服务器实现,Co\Http\Server 继承自 Co\Server。与 Http\Server 的不同之处:可以在运行时动态地创建、销毁对连接的处理是在单独的子协程中完成,客户端连接的 Connect、Request、Response、Close 是完全串行的Co\run(function () { $server = new Co\Http\Server...原创 2020-05-07 00:52:54 · 1203 阅读 · 2 评论 -
Swoole---tcp(协程风格)
服务端<?php//多进程管理模块$pool = new Swoole\Process\Pool(2);//开启多进程,设置两个进程工作数量,第二个参数默认为 0表示不使用任何进程间通信特性//让每个OnWorkerStart回调都自动创建一个协程$pool->set(['enable_coroutine' => true]);/* * 当enable_corou...原创 2020-05-06 22:17:48 · 356 阅读 · 0 评论 -
Swoole---协程学习
Swoole4 使用全新的协程内核引擎,现在我们拥有一个全职的开发团队,因此我们正在进入 PHP 历史上前所未有的时期,为性能的高速提升提供了独一无二的可能性。Swoole4 或更高版本拥有高可用性的内置协程,您可以使用完全同步的代码来实现异步 IO,PHP 代码没有任何额外的关键字,底层会自动进行协程调度。代码测试第一次go(function () { co::sleep(1);/...原创 2020-05-06 22:14:16 · 186 阅读 · 0 评论 -
SWOOLE_高性能共享内存Table
高性能共享内存 Table由于 PHP 语言不支持多线程,因此 Swoole 使用多进程模式,在多进程模式下存在进程内存隔离,在工作进程内修改 global 全局变量和超全局变量时,在其他进程是无效的。设置 worker_num=1 时,不存在进程隔离,可以使用全局变量保存数据$fds = array();$server->on('connect', function ($serve...原创 2020-05-05 23:22:53 · 587 阅读 · 0 评论 -
SWOOLE---进程Process
Swoole 提供的进程管理模块,用来替代 PHP 的 pcntl此模块比较底层,是操作系统进程管理的封装,使用者需要具备 Linux 系统多进程编程经验。PHP 自带的 pcntl,存在很多不足,如:没有提供进程间通信的功能不支持重定向标准输入和输出只提供了 fork 这样原始的接口,容易使用错误Process 提供了比 pcntl 更强大的功能,更易用的 API,使 PHP 在多进...原创 2020-05-05 23:00:08 · 137 阅读 · 0 评论 -
SWOOLE---毫秒定时器Timer
定时器 Timer毫秒精度的定时器。底层基于 epoll_wait 和 setitimer 实现,数据结构使用最小堆,可支持添加大量定时器。在同步 IO 进程中使用 setitimer 和信号实现,如 Manager 和 TaskWorker 进程在异步 IO 进程中使用 epoll_wait/kevent/poll/select 超时时间实现性能底层使用最小堆数据结构实现定时器,定时器...原创 2020-05-05 21:37:00 · 485 阅读 · 0 评论 -
SWOOLE---Task任务学习
执行异步任务 (Task)在 Server 程序中如果需要执行很耗时的操作,比如一个聊天服务器发送广播,Web 服务器中发送邮件。如果直接去执行这些函数就会阻塞当前进程,导致服务器响应变慢。Swoole 提供了异步任务处理的功能,可以投递一个异步任务到 TaskWorker 进程池中执行,不影响当前请求的处理速度。先上代码,服务端代码使用上一次的websocket的服务端代码<?ph...原创 2020-05-04 23:31:39 · 227 阅读 · 0 评论 -
SWOOLE---WebSocket服务学习
客户端代码<?php//创建websocket服务器对象,监听0.0.0.0:9502端口$ws = new Swoole\WebSocket\Server("0.0.0.0", 8812);$ws->set( [ 'enable_static_handler' => true, 'document_root' => "/us...原创 2020-05-02 00:47:34 · 212 阅读 · 0 评论 -
SWOOLE---HTTP学习
$http = new swoole_http_server("0.0.0.0", 8811);//监听所有端口$http->on('request', function ($request, $response){ //print_r($request->get);//返回数组 $response->cookie("name","sssss",time()+1...原创 2020-05-01 21:55:53 · 139 阅读 · 0 评论 -
SWOOLE---UDP学习
UDP相对于TCP代码更少,而且不需要客户端连接server<?php//创建Server对象,监听 127.0.0.1:9502端口,类型为SWOOLE_SOCK_UDP$serv = new Swoole\Server("127.0.0.1", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);//监听数据接收事件$serv->on('Pa...原创 2020-05-01 20:07:22 · 102 阅读 · 0 评论 -
SWOOLE---TCP学习
//创建Server对象,监听 127.0.0.1:9501端口$serv = new Swoole\Server("127.0.0.1", 9501);$serv->set([ 'worker_num' => 8,//worker进程数 cpu 1-4倍 'max_request' => 10000, 'daemonize' => 0]);...原创 2020-05-01 19:57:54 · 163 阅读 · 0 评论 -
swoole扩展学习随笔(一)
简介:Swoole 是一个 PHP 的 协程 高性能 网络通信引擎,使用 C/C++ 语言编写,提供了多种通信协议的网络服务器和客户端模块。可以方便快速的实现 TCP/UDP服务、高性能Web、WebSocket服务、物联网、实时通讯、游戏、微服务等,使 PHP 不再局限于传统的 Web 领域。php异步网络通信引擎最终编译为so文件作为php的扩展开发环境:linux/mac w...原创 2020-05-01 02:10:57 · 118 阅读 · 0 评论