Ajuda com Long Polling
Galera tenho o seguinte Long Polling
<?php
include 'conexao.php';
date_default_timezone_set('America/Sao_Paulo');
$timeStart = time();
$idFav = '{"fvr":[22,23,24]}';
$idFav = json_decode($idFav);
$countIdFav = count($idFav->fvr);
if(isset($_POST['timeStamp'])){
$timeStamp = $_POST['timeStamp'];
}else{
$timeStamp = date('Y-m-d H:i:s');
}
$sqll = "SELECT *FROM informacoes WHERE data > '$timeStamp'";
$sthh = $conn->prepare($sqll);
$newData = false;
$notificacoes = array();
while (!$newData && (time()-$timeStart)<20) {
$sthh->execute();
while ($datas = $sthh->fetch(PDO::FETCH_ASSOC)) {
$notificacoes [] = array_map('utf8_encode', $datas);
$nt = json_encode($notificacoes);
$nt = json_decode($nt);
for($i = 0; $i < $countIdFav; $i++){
if($nt[0]->id == $idFav->fvr[$i]){
$newData = true;
}
}
}
usleep(500000);
}
$timeStamp = date('Y-m-d H:i:s');
$dados = array('notificacoes'=>$notificacoes, 'timestamp'=>$timeStamp, );
echo json_encode($dados);
exit;
Quando ele achar algun registro eu preciso verificar se o id do usuario que enviou (**$nt[0]->id) **é igual ao Id dos favoriots (**$idFav = '{"fvr":[22,23,24]}';**).
So que enquanto estou fazendo essa verificação o script fica** duplicando os dados** na varivel (**$notificacoes**);
Ajudem por favor;
se tiverem dicas para melhorar o script também é muito bem vindo.
MUITO OBRIGADO GALERA!!!Discussão (1)
Carregando comentários...