Olá galera! Estou precisando de ajuda na diagramação de um projeto em JQuery.
O que estou tentando fazer é o seguinte:
vários usuários estão online e logados no site. Um deles clica em uma DIV e começa a buscar outros usuários online.
Quando 10 pessoas clicarem na mesma DIV, somente esses 10 são direcionados a uma página, em tempo real. (Long Polling).
Não sei como começar a pensar esse projeto.
Agradeço a ajuda de cada um.
Ótimo restante de feriado e ótima semana para todos.
:)
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.
Boa tarde, me surgiu a necessidade de criar um sistema de chat online e eu gostaria de saber qual a melhor forma ?
Com Interval do JS não funciona pra mim, muita carga no servidor, Node também está fora de cogitação. Pensei em usar Long Polling, mas ainda assim não sei se seria a forma mais eficiente de fazer isto, nem só para chat, mas para qualquer tipo de sistema que seja em tempo real, até porque não será utilizado o sistema de atualização em tempo real apenas no chat! Alguém com uma luz ?