Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eae galera , boa noite , estou muito , mais muito mesmo precisando da ajuda de VCS !
Criei um chat em php, em uma div puis uma tabela na onde fica as consultas de mensagens, e nela fiz um looper, ia itnao blz eu consigo mostrar as mensagens, e fiz um formulario pra enviar mensagens
Só que pra atualizar as mensagens enviadas tem k ficar atualizando a pagina pra ver as novas, tentei usar ajax pra da load em uma pagina separada com as msgs em tempo em tempo, e o resultado eu achei muito ruim, e vi em varios lugares k a melhor opção seria ou long polling ou web socket, eu fui atras pra ver se eu aprendia alguma coisa pra usar eles, mais nada de um tutorial legal sobre eles,
ALGUME AI PODERIA ME AJUDAR A FAZER UM SISTEMINHA pro meu chat
>
Eu falei sobre Long Polling neste post: http://rberaldo.com.br/server-push-long-polling-php-ios/
Vale a pena ler sobre Web Scokets também. Não posso afirmar (pois nunca utilizei), mas talvez o desempenho seja melhor.
Po Beraldo , eu n sabia nada, com esse mini tutorial ai, consegui pelo menos intender a lógica, e ainda consegui pegar esse exemplo, e agora estou adptando a minha necessidade, antes nao sabia nada agora estou em outro nivel, precisava disso msm vlw
só uma duvida Beraldo , naquele exemplo do seu site, ele busca por um arquivo .txt que e o data.txt , não teria como buscar um arquivo php?
é possível buscar em arquivo php, sim. Mas você quer buscar no fonte? Ou na saída dele, após a execução do script?
Seria pra buscar uma pagina com mensagens, em vez de eu pegar o data.txt com algo escrito dentro, eu pegava um arquivo PHP com um texto dentro
pode ler um .php, sim.
Usando file_get_contents, por exemplo, você lê o fonte do arquivo
eu fiz aki agora com um php com um texto simples, será k tabem é possivel com um php com uma consulta no BD simples, tambem seria possivel???
aí não é uma leitura do php, é a execução dele. pode dar include/require e chamar uma função dentro do while que faz a consulta
poderia em dar um exemplo disso, pois sou leigo no asssunto
Depende do que você quer fazer exatamente.
A lógica é esta:
while ( true )
{
// faça o select
if ( o resultado for o esperado, retorne o valor )
{
// retorne o valor
break;
}
}eu consegui fazer uma ganbiarra aonde eu consigo ler o arquivo php junto com a sua consulta nele, só que se eu sair da aba da pagina do navegador, e voltar d enovo, ele para de atualizar, poderia me ajudar nisso
se quando fecha e volta ele para, como você para ele rodar pela primeira vez?
eu abro a pagina se eu fico na aba dele ele executa normalmente automaticamente, se eu saio da aba da pagina e volto de novo, ele para e n atualiza mais
ta dando algum erro no console? por que sair e voltar é a mesma coisa que abrir pela primeira vez
tipo, quando eu mudo de aba e volto , ele continua normal, mais quando eu minimizo o navegador e entre em um programa e volto pro navegador, ele para tudo
n sei mais acho k deve ter algum tempo limite se ficar inativo por algum tempo ele para de atualzixar
Você está dizendo que ao mudar de janela no windows/linux/mac o script para de funcionar?
tipo se eu fico um tempo x fora da aba da pagina, ele para de atualizar, ai só fexando a aba e abrindo de novo
você está usando setInterval?
você está usando setInterval?
amigo esse problema ja resolvi vlw
>
Depende do que você quer fazer exatamente.
A lógica é esta:
while ( true )
{
// faça o select
if ( o resultado for o esperado, retorne o valor )
{
// retorne o valor
break;
}
}
Beraldo poderia fazer um exemplo pra min dese modelo, pois tentei fazer do meu jeitoe n consigo, faz ai apenas um exemplo basico pra min ter pelo menos uma noção
Beraldo poderia fazer um exemplo pra min dese modelo, pois tentei fazer do meu jeitoe n consigo, faz ai apenas um exemplo basico pra min ter pelo menos uma noção
Como você fez? E por que não deu certo?
É difícil eu fazer um exemplo genérico que lhe seja útil. Depende do seu objetivo. Qual é a condição de parada do loop?
eu fiz com file_get_contents, só que ele não atualiza a consulta do arquivo php , só atualiza o fonte dele rsrsrs
eu preciso k ele atualize caso haja algum registro novo inserido
Mas para isso você não pode ler o arquivo fonte. Você tem que executar a consulta dentro do loop, como se estivesse executando um SELECT em qualquer outra parte do seu código.
>
Como você fez? E por que não deu certo?
É difícil eu fazer um exemplo genérico que lhe seja útil. Depende do seu objetivo. Qual é a condição de parada do loop?
Olha é o seguinte
tenho uma tabela chamada group_posts nela fica as mensagens postadas, eu quero que a cada vez k alguem inserir uma nova mensagem, atualize, eu ja tenho pagina pa mostrar as mensagens
Então, se seguir o meu exemplo, $requestedTimestamp continuará sendo o parâmetro que você passa pro script. A única coisa que muda é o $modifiedAt. Em vez de pegar a data de modificação do arquivo, você vai fazer um select na tabela, filtrando por registros cujas datas sejam maiores que $requestedTimestamp. Se encontrar algum, retorne os dados e interrompa o loop.
Beraldo eu entendi a aprte do select e filtro blz, só que depois como faço pra exibir os valores, no metodo antigo eu so coloca um $data = $dataFileName pra exibir o arquivo, e agora, como faço pra consulta ?
Depende de como você quer exibir os dados. Você pode criar um array e dar um echo usando json_encode, pra gerar um JSON.
Se quiser exibir na tela, simplesmente, pode só dar um echo dentro do loop que percorre os resultados do banco.
Eu falei sobre Long Polling neste post: http://rberaldo.com.br/server-push-long-polling-php-ios/
Vale a pena ler sobre Web Scokets também. Não posso afirmar (pois nunca utilizei), mas talvez o desempenho seja melhor.