您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman的Timer定时器类的add方法实现定时器函数为匿名函数,利用定时器接口传递参数
发布时间:2021-12-05 00:05:16编辑:雪饮阅读()
定时器函数为匿名函数,利用定时器接口传递参数
实例:
<?php
use Workerman\Worker;
use Workerman\lib\Timer;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$ws_worker = new Worker('websocket://0.0.0.0:8484');
$ws_worker->count = 8;
// 连接建立时给对应连接设置定时器
$ws_worker->onConnect = function(TcpConnection $connection)
{
// 每10秒执行一次
$time_interval = 10;
$connect_time = time();
// 给connection对象临时添加一个timer_id属性保存定时器id
$connection->timer_id = Timer::add($time_interval, function($connection, $connect_time)
{
$connection->send($connect_time);
}, array($connection, $connect_time));
};
// 连接关闭时,删除对应连接的定时器
$ws_worker->onClose = function(TcpConnection $connection)
{
// 删除定时器
Timer::del($connection->timer_id);
};
// 运行worker
Worker::runAll();
?>
实例运行:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root none websocket://0.0.0.0:8484 8 [OK]
--------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
前端实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="https://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
<script type="">
$(document).ready(function(){
var count=0;
var ws = new WebSocket("ws://47.240.19.5:8484");
ws.onopen = function(){
ws.send("佳鹏!");
}
ws.onmessage = function(e){
count++;
if(count==3){
ws.close();
}
ws.send("send 佳鹏!");
}
ws.onclose = function(e){
console.log("连接已关闭");
console.log(e);
}
ws.onerror = function(e){
}
});
</script>
</head>
<body>
</body>
</html>
关键字词:workerman,Timer,定时器,匿名,接口,传递,参数
相关文章
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现闭包计划任务(
- workerman的Http服务-请求-获取header
- workerman的Http服务-请求-获取cookie
- workerman的Http服务-请求-获得原始请求post包体
- workerman的Http服务-请求-获得请求对象
- workerman的Http服务-请求-获得请求参数post