$io->on('connection', function($socket)use($io){
echo "new connection coming\n";
$time_interval = 3;
$n = 0;
Timer::add($time_interval, function() {
global $io,$n;
$io->emit('sendLatest', $n++);
});
});
\Workerman\Worker::runAll();
两个问题,麻烦各位帮忙解答一下:
1.当页面打开第一个页面时$n是从0开始返回的,但是打开第二个页面时$n是从第一个页面的数字开始返回,怎么才能每个请求使用一个$n呢?
2.当打开多个页面时,返回的时间间隔明显小于3秒了,打开越多,间隔越小,有时候一下子返回好几个
这样有问题吧,有1万个连接连上来,创建1万个定时器,那服务器不挂才怪啊。
创建一个定时器大家一起用比较合理
怎么只生成一个定时器呢
$io->on('workerStart', function(){
// ...
});
这个是生成了一个定时器,但是如何跟我上面的逻辑结合呢,把信息定时推送给前端?
感觉你的业务逻辑应该是这样的,大概意思是这样,有报错自己解决下
果然是可以的,追加一个:如果用户关闭了浏览器,我看并没有调用disconnect,也就是说如何释放掉连接呢?