Swoole 入门学习(二)
2023-09-11 14:22:41 时间
Swoole 入门学习
swoole 之 定时器
循环触发:swoole_timer_tick (和js的setintval类似)
参数1:int $after_time_ms 指定时间【毫秒】
参数2:mixed $callback_function 执行的函数
参数3:mixed $user_param 用户参数
清除定时器:bool swoole_timer_clear(int $timer_id)。
单次触发:swoole_timer_after
参数1:int $after_time_ms 指定时间【毫秒】
参数2:mixed $callback_function 执行的函数
参数3:mixed $user_param 用户参数
示例:
<?php //循环执行定时器 swoole_timer_tick(2000,function($timer_id){ echo "执行 $timer_id \n"; }); //单次执行定时器 swoole_timer_after(3000,function(){ echo "3秒后执行 \n"; }); ?>
异步TCP服务器
函数:
task() 投递异步任务
on('事件',function(){}) 处理函数,执行异步函数
finish(),任务处理完成后结果
示例:
<?php //创建TCP服务器 $serv = new swoole_server('0.0.0.0',9501); //设置异步进程工作数 $serv->set(array('task_worker_num'=>4)); //投递异步任务 $serv->on('receive',function($serv,$fd,$from_id,$data){ $task_id = $serv->task($data);//异步ID echo "异步ID:$task_id\n"; }); //处理异步任务 $serv->on('task',function($serv,$task_id,$from_id,$data){ echo "执行异步ID:$task_id"; }); //处理结果 $serv->on('finish',function($serv,$task_id,$data){ echo '执行完成'; }); $serv->start(); ?>
TCP客户端
<?php //实例化客户端 $client = new swoole_client(SWOOLE_SOCK_TCP); //连接服务 $client->connect('192.168.1.5',8080,5) or die('连接失败');//5表示5秒内给到返回数据。 //发送数据 $client->send('hello world') or die('发送失败'); //从服务器接收数据 $data = $client->recv(); if($data){ var_dump($data); } //关闭客户端 $client->close(); ?>
TCP异步客户端
示例:
<?php //创建异步TCP客户端 $client = new swoole_client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_ASYNC); //注册连接成功的回调 $client->on('connect',function($cli){ $cli->send("hello \n"); }); //注册数据接收$cli,服务端信息$data数据 $client->on('receive',function($cli,$data){ echo "data:$data \n"); }); //注册连接失败 $client->on('error',function($cli){ echo "失败 \n"); }); //注册关闭函数 $client->on('close',function($cli){ echo "关闭 \n"); }); //发起连接 $client->connect('192.168.1.5',8080,10); ?>
swoole 之进程
<?php //进程对应的执行函数 function doProcess(swoole_process $worker){ echo "PID",$worker->pid,"\n"; sleep(10); } //创建进程1 $process = new swoole_process("doProcess"); $pid = $process->start(); //创建进程2 $process = new swoole_process("doProcess"); $pid = $process->start(); //创建进程3 $process = new swoole_process("doProcess"); $pid = $process->start(); //等待结束 swoole_process::wait(); ?>
相关文章
- Gradle学习之第一步入门操作
- UML类图学习
- 机器学习算法在用户行为检测(UBA)领域的应用
- iOS学习之NSString
- java struts2入门学习实例--使用struts2快速实现多个文件上传
- java struts2入门学习实例--将客户端IP地址和访问方式输出到浏览器
- android 5.0新特性学习--RecyclerView
- PhoneGap学习(一)
- 机器学习入门13 - 正则化:稀疏性 (Regularization for Sparsity)
- JAVA8--Stream学习
- 【学习总结】C-翁恺老师-入门-第0周<程序设计与C>
- Leetcode学习计划之动态规划入门day12(118,119)
- 机器学习笔记 - 探索性数据分析(EDA) 入门案例四
- 机器学习笔记 - 语义分割资源清单
- 数学建模学习笔记(五)K-means聚类算法
- koa2入门学习
- SpringCloud的入门学习之概念理解、Hystrix断路器
- 如何系统地学习JavaScript
- 学习Python可以做什么工作?选什么方向?
- 使用GridSearchCV寻找最佳参数组合——机器学习工具箱代码
- 机器学习从入门到精通(1)—— 逻辑回归
- k8s学习之路 | Day7 k8s 入门操作(一)
- Tensorflow深度学习过程各数据分布情况汇总(一)
- 机器学习入门(二):工具与框架的选择