zoukankan      html  css  js  c++  java
  • 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();
    ?>
  • 相关阅读:
    CF1260F
    牛客挑战赛34 A~E
    CSP-S2019游记&拆塔记
    6424. 【NOIP2019模拟2019.11.13】我的订书机之恋
    CF1257E/F
    6423. 【NOIP2019模拟11.11】画
    1222/2516. Kup
    Comet OJ
    浅析CSS定位
    css文字颜色渐变的3种实现
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/10984523.html
Copyright © 2011-2022 走看看