1、ServerTimer.php 代码:

<?php
/*** 定时器学习*/
require_once __DIR__ . '/Workerman/Autoloader.php';
use Workerman\Worker;
use Workerman\Lib\Timer;
// 创建一个容器
$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 \n");}// 简单的连接器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

  

WorkerMan 入门学习之(三)基础教程-Timer类的使用相关推荐

  1. 菜鸟教程php 文件上传,php入门学习知识点三 PHP上传

    if(is_uploaded_file($_FILES["Imgs"]["tmp_name"])){ $phpupfile=$_FILES["Imgs ...

  2. c# out原理 ref_3-Unity入门学习之C#基础2「数据类型」

    3-Unity入门学习之C#基础2 一.C#的数据类型 C#中,变量主要包含以下三种类型: 1.1.值类型 1.1.1.值类型介绍 ①结构[struct]:包含(整型.浮点型.128 位数据类型(de ...

  3. Python入门学习笔记1-Python基础

    Python入门学习笔记1-Python基础 前言:本文介绍了Python学习的前导知识概念以及必记基础函数,如善用help方法查看帮助文档,以及内置对象类型的概念以及常用函数的详解. 一.Pytho ...

  4. 绘画如何入门?学绘画基础教程

    绘画如何入门?学绘画基础教程!没有基础的话建议先从素描开始临摹,然后用软件建模,接着过渡到线稿.素描作为最基础的课程,需要你从最最最最基础的地方来看,就是人体.为了帮助有兴趣的朋友理解大多数人会选择绘 ...

  5. TIA博途SCL入门学习(三)创建SCL程序及更改FB块接口的视图样式

    TIA博途SCL入门学习(三)创建SCL程序及更改FB块接口的视图样式 TIA博途中创建SCL程序有2种方式,具体可参考以下内容: 在LAD程序段或FBD程序段种可以插入SCL程序段,实现两种语言混合 ...

  6. html5教程 w3cschool,W3Cschool学习笔记——HTML5基础教程

    HTML5 建立的一些规则:新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立 ...

  7. SQL零基础入门学习(三)

    SQL零基础入门学习(二) SQL WHERE 子句 WHERE 子句用于提取那些满足指定条件的记录. SQL WHERE 语法 SELECT column1, column2, ... FROM t ...

  8. 深度学习之Pytorch基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...

  9. 【深度学习】深度学习之Pytorch基础教程!

    作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展,深度学习框架开始大量的出现.尤其是近两年,Google.Facebook.Microsoft等巨头都围绕深度学习重点投资了一系 ...

最新文章

  1. 2020年,图机器学习的趋势有哪些?
  2. 鸿蒙升级名单确认最新,华为鸿蒙系统升级名单正式确认!全面替换安卓:流畅度比肩iOS...
  3. 人工智能思维导图一张,收藏!
  4. struts2对action的搜索规则
  5. mac下常用快捷键整理
  6. tensorflow 读取cifar_浅入浅出TensorFlow 4 - 训练CIFAR数据
  7. 杭电1108java_按照这个步骤来刷题,迷茫的你两个月亦能成为王者
  8. UI设计干货素材|动态交互插画模板
  9. HDU 5835 Danganronpa 贪心
  10. 解决CocosCreator2.3.1使用VideoPlayer加载视频黑屏问题(修改底层代码)
  11. thinkphp5.x之数据库操作相关解析 Db类
  12. roads 用户体验标准_手持海外通行证,海信激光电视征服全球用户!
  13. ubuntu下使用锐捷客户端链接校园网
  14. 再分享一个零成本做文库代下载赚钱项目
  15. 电脑计算机稳定删除垃圾游戏,电脑卡怎么办简单步骤_如何清理电脑垃圾
  16. 通读SLA文档之后的感受
  17. 快闪类企业校园招聘H5,这么设计才够炫!
  18. Java实现百度贴吧自动签到器
  19. 调用Windows api 窗口截图
  20. 各类编程开发网址分享

热门文章

  1. Wayland 1.0 发布,图形服务器
  2. 几种分页方法效率比较
  3. [20180812]四校联考
  4. python 黑客书籍 ——扫描+暴力破解
  5. Centos7 安装 Kubernetes dashboard (安装篇)
  6. Python数据写入csv格式文件
  7. 深入详解Java线程池——ThreadPoolExecutor
  8. 设计模式(五)学习----装饰模式
  9. SQL优化之not in
  10. ASP.NET MVC3 及其学习资源