三个素材包要间隔固定时间发送
workerman 有定时器的,用定时器.
use Workerman\Lib\Timer;
use Workerman\Worker;
$worker = new Worker('tcp://0.0.0.0:8181');
$worker->onMessage = function($con, $data){
$con->send('数据包1');
Timer::add(3, function()use($con){
$con->send('数据包2');
}, null, false);
Timer::add(6, function()use($con){
$con->send('数据包3', null, false);
});
};
Worker::runAll();
定时的任务建议跑cli模式
可利用swoole workerman event等扩展
本身socket利用eventloop等事件驱动的io多路复用性能也好,当然间隔用相关的定时即可
有两种简单的方式
while死循环
<?php
$data = ['数据包1','数据包2','数据包3'];
$i = 0;
while(true){
sendData($data[i]);
$i++;
if($i>count($data)){
$i=0;
}
sleep(3)
}
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答610 阅读✓ 已解决
799 阅读
用
for
循环,或者直接三次调用发送。每次sleep
3秒。感觉你这么做没太大意义,你本地可以三秒发送,接收端不一定是建个三秒的。和网络情况有关系。