Ir para conteúdo
Fórum Script Brasil
  • 0

push php fake em variavel.


ktinho

Pergunta

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

<?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

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

preciso de um script que de um loop em uma variavel php por x de tempo que tera um formulario com comandos get que gravara novos dados nessa variavel, e quero que seja mostrada no index os dados gravado nela e que seja mostrado sem o browser pergunte se tem novos dados(sem refresh refresh).

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...