pelo que eu sei e já testei ele funciona com um loop em um arquivo txt e quando é adicionado uma nova mensagem no arquivo ele automaticamente atualiza para todos que estao com o browser aberto. sem precisar do navegador ficar consultando respostas, então oque eu preciso é que um cliente digite uma mensagem e clique em enviar então ao invez de gravar os dados em um txt preciso que os dados fiquem em uma variavel $mensagem, ai depois mostra para todos a mensagem da variavel.
explicando a tecnica: em um navegador comum o cliente faz uma soclicitaçao para o servidor que gera a pagina e entrega para o navegador e fecha a conexao com o navgador então depois que carregou a pagina o navegador já não esta ligado ao servidor e cada clique em um botao na pagina gera uma conexao para o servidor.
comet ou reverse pode fazer com que ao navegador solicitar uma pagina ao servidor conseguir enganar o navegador para que ele fique achando que os dados ainda não forao completamente enviados e isso abre uma conexao full duplex no protocolo http de envio e recebimento de dados em tempo real sem matar o servidor com refresh.
código do php backend.php
<?php
$filename = dirname(__FILE__).'/data.txt';
// store new message in the file
$msg = isset($_GET['msg']) ? $_GET['msg'] : '';
if ($msg != '')
{
file_put_contents($filename,$msg);
die();
}
// infinite loop until the data file is not modified
$lastmodif = isset($_GET['timestamp']) ? $_GET['timestamp'] : 0;
$currentmodif = filemtime($filename);
while ($currentmodif <= $lastmodif) // check if the data file has been modified
{
usleep(10000); // sleep 10ms to unload the CPU
clearstatcache();
$currentmodif = filemtime($filename);
}
// return a json array
$response = array();
$response['msg'] = file_get_contents($filename);
$response['timestamp'] = $currentmodif;
echo json_encode($response);
flush();
?>
o resto é javascript acho que não deve ser postado aqui mas se quiserem eu posto mas o javascript faz parte da index.html
Pergunta
ktinho
galera preciso passar uma variavel para o browser sem que o mesmo faça solicitaçao tem esse codigo na web mas não entendo muito:
http://www.zeitoun.net/articles/comet_and_php/start
pelo que eu sei e já testei ele funciona com um loop em um arquivo txt e quando é adicionado uma nova mensagem no arquivo ele automaticamente atualiza para todos que estao com o browser aberto. sem precisar do navegador ficar consultando respostas, então oque eu preciso é que um cliente digite uma mensagem e clique em enviar então ao invez de gravar os dados em um txt preciso que os dados fiquem em uma variavel $mensagem, ai depois mostra para todos a mensagem da variavel.
explicando a tecnica: em um navegador comum o cliente faz uma soclicitaçao para o servidor que gera a pagina e entrega para o navegador e fecha a conexao com o navgador então depois que carregou a pagina o navegador já não esta ligado ao servidor e cada clique em um botao na pagina gera uma conexao para o servidor.
comet ou reverse pode fazer com que ao navegador solicitar uma pagina ao servidor conseguir enganar o navegador para que ele fique achando que os dados ainda não forao completamente enviados e isso abre uma conexao full duplex no protocolo http de envio e recebimento de dados em tempo real sem matar o servidor com refresh.
código do php backend.php
o resto é javascript acho que não deve ser postado aqui mas se quiserem eu posto mas o javascript faz parte da index.html
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.