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(); ?>

  

  

最新文章

  1. SSH 端口转发+内网穿透
  2. [PHP]Yaf + composer 引起大幅性能下降
  3. IIS 解决问题:HTTP 错误 401.1 - 未授权:登录失败
  4. HDU 1702 http://acm.hdu.edu.cn/showproblem.php?pid=1702
  5. 一个PHP常用表单验证类(基于正则)
  6. lesson7:java线程池
  7. python基础教程_学习笔记1:序列-1
  8. [ios3-地图] 如何在iOS地图上高效的显示大量数据 [转]
  9. JS算法之快排&amp;冒泡
  10. sae中thinkphp使用smarty
  11. 排序算法 - 选择排序(selection sort)
  12. Ubuntu+Firefox总是打不开网页
  13. NodeJs 使用 multer 实现文件上传
  14. RocketMQ_问题_启动报错,修改堆内存大小
  15. Solr学习笔记——查询
  16. Spring5 新特性
  17. 二叉搜索树的后序遍历序列(python)
  18. Linux QT 连接 Sqlite数据库
  19. mysql建表以及列属性
  20. 关于k8s这项大动作,预示着边缘计算迎来“开源”发展的新周期……

热门文章

  1. TC609 DIV1 (500)
  2. 关于OPPO手机的生存和程序员的发展
  3. Toast解析
  4. SDK manager.exe 运行时报错:系统找不到指定的文件 android.bat
  5. Android 更新方案实现
  6. 阿里云虚拟主机的域名添加https的方法
  7. 什么是BDD?
  8. CREATE GROUP - 定义一个新的用户组
  9. Zend Studio 离线汉化包下载方法
  10. Asp.Net MVC中Controller、Action、View是如何激活调用的