zoukankan      html  css  js  c++  java
  • WorkerMan 入门学习之(三)基础教程-Timer类的使用

    1、ServerTimer.php 代码:

    <?php
    /**
     * 定时器学习
     */
    require_once __DIR__ . '/Workerman/Autoloader.php';
    use WorkermanWorker;
    use WorkermanLibTimer;
    // 创建一个容器
    $worker = new Worker('websocket://0.0.0.0:12345');
    // 连接回调
    $worker->onConnect = function ($connection) {
       // 每10s 检查客户端是否有name属性     
       Timer::add(10, function () use ($connection) {
            if (!isset($connection->name)) {
                $connection->close("auth timeout and close");
            }
        }, null, false);
    };
    
    $worker->onMessage = function ($connection, $data) {
        if (!isset($connection->name)) {
            $data = json_decode($data,true);
            if (!isset($data['name']) || !isset($data['password'])) {
                return $connection->close("auth fail and close");
            }
            // 如果客户端name存在,mysql,这里使用动态给对象赋值属性name,标记该对象已经通过验证
            $connection->name = $data['name'];
            // 广播给所有用户,该用户加入
            return broadcast($connection->name . " join 
    ");
        }
        // 简单的连接器
        return broadcast($connection->name . ' said : ' . $data);
    };
    
    function broadcast($msg)
    {
        // 引入$worker 对象
        global $worker;
        // $worker->connections 为客户端连接的所有对象
        foreach ($worker->connections as $connection) {
            if (!isset($connection->name)) {
                //忽略掉
                continue;
            }
            $connection->send($msg);
        }
    }
    
    $worker::runAll();/

    2、开启服务

    3、打开谷歌浏览器测试

    (1)没有携带name和password 

      

    (2)携带name和password

      

    (3)两个客户端互相通信

      客户端001

      

      客户端002

      

     

  • 相关阅读:
    接口框架项目示例
    接口框架开发流程总结
    requests库的简单使用
    使用flask创建简单的接口
    session和token
    解决log函数生成重复log的问题
    自定义封装logging参考
    织梦dedecms做的网站首页标题篡改跳转赌博网站解决方案
    织梦网站安全查杀
    织梦重置密码的方法和织梦网站后台登陆账号修改方法
  • 原文地址:https://www.cnblogs.com/tinywan/p/7420622.html
Copyright © 2011-2022 走看看