У меня есть скрипт для автоответчика чата, который использует while () для запуска, поэтому он работает вечно, пока не умрет.
Я хочу, чтобы он мог посылать сообщение «PING» один раз в 3 минуты, но все еще может выполнять «АВТОРЕСПОНД» каждое полученное сообщение.
Беда в том, что если я использую функцию sleep (180) для зацикливания сообщения «PING» каждые 3 минуты, «AUTO RESPOND» перестанет отвечать на каждое сообщение, потому что скрипт переходит в режим сна с функцией сна (180).
Итак, какое решение для создания сценария можно выполнить зацикливание сообщения «PING» каждые 3 минуты, но все же можно выполнять «AUTO RESPOND» для каждого сообщения одновременно.
Что возможно?
Кто-то может помочь мне на основе моего сценария ниже?
$this->connect();
while(!$this->isDisconnected()) {
$starts = $this->processUntil(array('message', 'session_start'));
foreach($starts as $go) {
switch($go[0]) {
case 'session_start':
$this->presence($status="Just Online !!!", $show="online");
break;
case 'message':
$filter = $show="online";
if($new['from'] == $filter) {
$sender = explode('@', $new['from']);
$this->message($new['from'], $body="AUTO RESPOND MESSAGE: Sorry $sender[0] Iam Not Here Right Now.", $type="chat");
}
$the_time = time();
$interval = 3*60;
while(true) {
if ($the_time + $interval >= time()) {
$this->message($myself, $body="PING !!!", $type="chat");
$the_time = time();
}
}
break;
}
}
}
Задача ещё не решена.
Других решений пока нет …