• swoole 定时器 swoole_time_tick 和 swoole_time_after


    <?php

    class myticker
    {
    public $server = null;
    CONST host = '127.0.0.1';
    CONST port = 9502;
    public function __construct()
    {
    $this->server = new swoole_websocket_server(myticker::host,myticker::port);
    $this->server->on('open',[$this,'onopen']);
    $this->server->on('message',[$this,'onmessage']);
    $this->server->on('close',[$this,'onclose']);

    $this->server->start();
    }
    public function onopen($serv,$request)
    {
    echo "接通!来自{$request->fd}的问候 ";
    if ($request->fd==2)
    {
    swoole_timer_tick(3000,function($timer_id)
    {
    //swoole_timer_tick 表示每几秒执行一次操作,第一个参数精确到毫秒
    //回调函数中的$timer_id用来标注识别定时器ID,这一定时器id还用于time::clear()清楚定时器
    //回调函数中还可使用其他参数,只不过是可选的
    echo "3秒后,{$timer_id}开始执行 ";
    });
    }
    }

    public function onmessage($serv,$frame)
    {
    echo "接到来自客户句柄----{$frame->fd}的问候,其操作类型为--{$frame->opcode},数据帧的完整状态{$frame->finish} ";
    swoole_timer_after(5000,function() use($serv,$frame){
    echo "5秒后,返回客户端{$frame->fd}的数据{$frame->data} ";
    $serv->push("推送到达的时间".date('Y-m-d H:i:s')." ");
    });
    $serv->push($frame->fd,$frame->data);
    }
    public function onclose($serv,$fd)
    {
    echo "关闭来自{$fd}的连接 ";
    }
    }
    $cpc=new myticker();
    ?>
  • 相关阅读:
    java事件处理(贪吃蛇)
    九九乘法表
    使用文件包含指令include
    jsp页面的基本构成
    软件测试博客

    成功职业女性处世的10大秘诀
    再见啦,冬冬妹
    网摘——杜晓眼眼中的尹珊珊:什么都要,什么都要得到
    网摘——事关“工程师思维”
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/10984523.html
Copyright © 2020-2023  润新知