Доброй ночи. Раньше использовал вебсокет воркерман. Неудобство в том что туда не подключить модели из yii. Это все как бы было отдельно. У него был таймер, выполняющий одно и то же действие раз в заданное время PHP: $task->onWorkerStart = function($task) { //executed once every 2.5 seconds $time_interval = 2.5; Timer::add($time_interval, function() { echo "task run\n"; }); }; Нашел вебсокет для yii2 https://github.com/consik/yii2-websocket Но у него нет подобного таймера. Или я плохо искал, подскажите кто чем пользуется?
А так не пробовал? https://www.yiiframework.com/doc/guide/2.0/ru/tutorial-yii-integration#using-yii-in-others
У своего хостера запустил вебсокет, их ответ: Фьюф, обойдусь : Код (Javascript): let t = 5000; let timerId = setTimeout(function eqs_update() { $.ajax({ type : 'post', url : '/update', data : {'time': 'time'} }).done(function(data) { data = JSON.parse(data); // console.log(data); timerId = setTimeout(eqs_update, t); }); }, t);
Зачем такое извращение? Делаете отдельный таймер на js, который будет с бека получать только дату по началу отсчета, а при необходимости (если таймер не просто так, а завязан на какую-то механику) - засекайте время также на беке + по сохраненной дате и текущему времени определяете, сколько времени прошло. В 2018 году писал пример реализации энергии для браузерной игры: код: https://github.com/WalkWeb/Browser-MMORPG-Energy-System пример: http://walkweb.ru/energy/