一、服务端

0. swoole常用的配置项:
  daemonize = true 守护进程化
  worker_num #swoole配置参数 设置启动的Worker进程数: 如 1 个请求耗时 100ms,要提供 1000QPS 的处理能力,那必须配置 100 个进程或更多。
  reactor_num #线程数
  task_worker_num #配置 Task 进程的数量
1. 几个重要的id:
  $server->master_pid #主进程的 PID 跟pid_file文件存放的PID、netstat -tlunp | grep 6998 中的PID保持一致
  $fd 客户端连接的唯一标识符
  $server->manager_pid #当前服务器管理进程的 PID ??? 与master_pid的区别 管理进程与主进程的区别
  $server->worker_id #获得当前Worker进程编号, 包括Task进程 Worker进程的范围是[0, worker_num - 1]; Task进程范围 [worker_num, worker_num + task_worker_num -1 ] 要深刻理解这两个范围
  $server->worker_pid #得到Worker进程的操作系统进程ID 与posix_getpid() 的返回值相同 如worker_id = 0 则 worker_pid = 76845

2. 其他属性
  $server->taskworker #当前进程是否是Task进程 true Task进程 / false Worker进程
  $server->connections #连接跌代器 和 $server->getClientList()一致, connections不是数组或对象, 只能用foreach访问, 里面存的是$fd

3. 定时器

/*延时执行*/
$after = Timer::after(10000,function () use ($server,$fd){
  $server->send($fd, 'abc');
});
/*定时器*/
$i = 0;
$timer = Timer::tick(1000,function ($timerId) use (&$i,$server,$fd,$after){
  $i++;
  $server->send($fd, $i);
  if ($i==8) Timer::clear($after);
  if ($i==10) Timer::clear($timerId);
});

二、客户端
0. 方法
$client->isConnected() #是否已连接到服务器

swoole学习笔记的更多相关文章

  1. 01.swoole学习笔记--TCP服务器

    1.安装swoole扩展 2.网络调试助手进行调试 <?php //创建服务器 $host='192.168.10.31'; $port=; //$model='SWOOLE_PROCESS'; ...

  2. 08.swoole学习笔记--异步tcp客户端

    <?php //创建异步tcp客户端 $client=new swoole_client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_ASYNC); //注册连接成功的回调函数 $c ...

  3. 07.swoole学习笔记--tcp客户端

    <?php //创建tcp客户端 $client=new swoole_client(SWOOLE_SOCK_TCP); //连接服务器 $client->connect(,) or di ...

  4. 06.swoole学习笔记--异步tcp服务器

    <?php //创建tcp服务器 $host='0.0.0.0'; $port=; $serv=new swoole_server($host,$port); //设置异步进程工作数 $serv ...

  5. 05.swoole学习笔记--定时器

    <?php //循环执行的定时器 swoole_timer_tick(,function($timer_id){ echo "执行 $timer_id \n"; }); sw ...

  6. 04.swoole学习笔记--webSocket服务器

    <?php //创建webSocket服务器 $serv=); //获取请求 //on //open 建立连接 $serv:服务器 $request:客户端信息 $serv->on('op ...

  7. 03.swoole学习笔记--web服务器

    <?php //创建web服务器 $serv=); //获取请求 /* * $request:请求信息 * $response:响应信息 */ $serv->on('request',fu ...

  8. 02.swoole学习笔记--UDP服务器

    <?php //创建服务器 $serv=,SWOOLE_PROCESS,SWOOLE_SOCK_UDP); //bool $swoole_server->on(string $event, ...

  9. 18.swoole学习笔记--案例

    <?php //创建webSocket服务器 $ws=); //open $ws->on('open',function($ws,$request){ echo "新用户 $re ...

随机推荐

  1. 4G巴歇尔槽流量采集网关

    首先向大家展示下拓扑图: 金鸽科技R10物联网网关,带有一个RS485口可以采集巴歇尔槽的液位状态,还提供一个网口用于给摄像头和现场其他的网络设备提供网络传输通道!R10A内置了巴歇尔槽液位换算成流量 ...

  2. Vue 自定义事件 && 组件通信

    1 App.vue 2 <template> 3 <!-- 4 组件的自定义事件: 5 1.一种组件间通信的方式,使用于:子组件===>父组件 6 2.使用场景:A是父组件,B ...

  3. 基于webgl(threejs)的路面编辑

    楔子 在很多应用中,特别是一些园区类的应用. 都需要对园区的地面 环境进行展示,路面就是地面的一部分. 通常的做法是,都是建模的时候把相关的元素都建好,然后导入到展示系统中进行展示. 不过有些情况下, ...

  4. BZOJ4569 [Scoi2016]萌萌哒(并查集,倍增)

    类似\(ST表\)的思想,倍增\(log(n)\)地合并 你是我家的吗?不是就来呀啦啦啦.还有要来的吗?没了!那有多少个家就映射多少答案呀 倍增原来这么好玩 #include <iostream ...

  5. LuoguU72177 火星人plus (逆康拓展开)

    没开long long见祖宗... BIT先求逆序对来造表存展开关系,线段树维护01进制 #include <iostream> #include <cstdio> #incl ...

  6. C语言【10部分】

    输出整数 #include <stdio.h> int main() { int number; // printf() 输出字符串 printf("输入一个整数: " ...

  7. 【java】学习路线13-多态继承

    /*多态创建一个父类的对象,用子类去初始化如果要使用子类的方法,则需要把对象强制转换为子类的(xx)xxx*/public class Learn01{    public static void m ...

  8. Python入门系列(七)开发常说的“累”与“对象”

    类与对象 Python是一种面向对象的编程语言. 要创建类,请使用关键字class class MyClass: x = 5 创建一个名为p1的对象,并打印x的值 p1 = MyClass() pri ...

  9. KingbaseFlySync ddl变更流程

    关键字: KingbaseFlySync.Linux.x86_64.mips64el.aarch64.Java 一.ddl变更流程 1. 停掉客户业务,保证没有新数据产生 确认Oracle数据库上所有 ...

  10. 在Windows Server 2019上安装edge浏览器

    在Windows 2016和2019的正式版本中是不带Edge浏览器的.有些工具.网站也不支持IE浏览器了.对于偶尔需要在服务器上访问这些站点的管理员来说有些不方便.不过可以通过安装三方浏览器或者Ed ...