Jump to content


Photo

Connection_aborted


  • Faça o login para participar
4 replies to this topic

#1 GuiSaldanha

GuiSaldanha

    Normal

  • Usuários
  • 110 posts
  • Sexo:Não informado
  • Localidade:Natal, Rio Grande do Norte
  • Interesses:PHP/MySQL, javascript, design

Posted 23/12/2004, 15:03

Olá pessoal estava planejando fazer um chat aqui, os que vi na internet são todos baseados no reload, queria fazer um que não precisasse dar reload a cada x seguntos.

Achei que esse comando connection_aborted poderia me ajudar, mas acho que a página ficaria exessivamente lenta.

Alguém já usou esse comando? Se já usou, o que achou? A página fica lenta, sem parar de carregar?
Guilherme Saldanha - www.guisaldanha.com - Sistemas em PHP

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 23/12/2004, 15:19

Explique o seu objetivo ao utlizar o comando connection_aborted em um chat.
------
Mero mortal!

#3 Thales Medeiros

Thales Medeiros

    24 Horas

  • Usuários
  • 426 posts
  • Sexo:Não informado
  • Localidade:Juiz de Fora/MG
  • Interesses:Programação em geral. Programo em PHP, ASP, PERL, VB, Delphi, C/C++, Java e com banco d dados<br><br>Gosto tb d ajudar. Se precisar d mim, basta postar uma msg no Forum! Se eu souber, te responderei...

Posted 23/12/2004, 15:35

Provavalmente ele deseja fazer algo do tipo;

<?
set_time_limit(0);
ignore_user_abort(false);

while(!connection_aborted()) {
    //busca novas mensagens e as imprime na tela
}

mysql_query("DELETE FROM usuarios_na_sala_X WHERE id=$_SESSION[chat_id]");
?>

É uma ótima idéia, Gui! Só não te digo se dá certo pq nunca tentei.

Tente fazer e nos diga se ficou ou não lento. Sugiro, é claro, fazer em sua máquina antes. Dê uma olhada no Gerenciador de Processos (CTRL+ALT+DEL) se o processo do PHP está consumindo muito os recursos do sistema desta forma. Por se tratar de um loop infinito, provavelmente consumirá. Portanto é bom dar um sleep() dentro do loop para dar uma pausa para o processador respirar.

Um abraço,
Thales Medeiros.
Sucesso é ganhar dinheiro fazendo o que você faria de graça.

#4 GuiSaldanha

GuiSaldanha

    Normal

  • Usuários
  • 110 posts
  • Sexo:Não informado
  • Localidade:Natal, Rio Grande do Norte
  • Interesses:PHP/MySQL, javascript, design

Posted 23/12/2004, 15:54

Era exatamente isso Thales, principalmente para saber se o usuário ainda está conectado, porque se o usuário sair da sala clicando num botão fechar eu coloquei para abrir um popup para tirar ele do banco, mas alguns bloqueadores não deixam isso acontecer. Aí o sistema dá pau.
Guilherme Saldanha - www.guisaldanha.com - Sistemas em PHP

#5 Thales Medeiros

Thales Medeiros

    24 Horas

  • Usuários
  • 426 posts
  • Sexo:Não informado
  • Localidade:Juiz de Fora/MG
  • Interesses:Programação em geral. Programo em PHP, ASP, PERL, VB, Delphi, C/C++, Java e com banco d dados&lt;br&gt;&lt;br&gt;Gosto tb d ajudar. Se precisar d mim, basta postar uma msg no Forum! Se eu souber, te responderei...

Posted 23/12/2004, 16:05

Normalmente nos chats a gente costuma colocar também um campo de qual foi a data da última solicitação de dados pelo usuário. Vamos supor que o usuário saiu por um meio não convencional que impediu que você retirasse ele da sala via um código mais limpo. Então a gente verifica se esta data e hora da última solicitação tem mais de 2 minutos, por exemplo. Neste caso, a gente retira-o na marra. Algo que seria necessário se o uso do connection_aborted() funcionasse.

Um abraço,
Thales Medeiros.
Sucesso é ganhar dinheiro fazendo o que você faria de graça.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq