Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Colegas, estou usando um script de bate papo em PHP. Quando faço testes locais o mesmo se comporta sem problemas, no entanto, quando está no ar, sinto que existe uma instabilidade no servidor. O site todo fica indisponível. Se o usuário escreve um comentário, as vezes fica mais de 2 minutos para o mesmo ser enviado ao servidor e mostrado na página. A banda de rede disponível é suficientee não vejo gargalo. Ocorreu-me a possibilidade de ser alguma parte do script, que descrevo abaixo. Alguém podería me dar uma luz?
Chat.php
<?php
class Chat{
private $nome;
private $mensagem;
private $tempoLimite;
public function __construct(){
$this->tempoLimite = TEMPO_LIMITE;
}
public function setNome($nome){
$this->nome = $nome;
}
public function getNome(){
return $this->nome;
}
public function setMensagem($msg){
$this->mensagem = $msg;
}
public function getMensagem(){
return $this->mensagem;
}
public function inserir(){
$strSQL = "INSERT INTO chat SET nome = ?, mensagem = ? , datahora = NOW()";
$stmt = BD::getConn()->prepare($strSQL);
$data = array($this->getNome(), $this->getMensagem());
return $stmt->execute($data);
}
public function existeNome(){
$strSQL = "SELECT COUNT(nome) FROM chat WHERE nome = ?";
$stmt = BD::getConn()->prepare($strSQL);
$data = array($this->getNome());
$stmt->execute($data);
return ($stmt->fetchColumn() > 0) ? true : false;
}
public function excluir(){
$strSQL = "DELETE FROM chat WHERE DATE_ADD(datahora, INTERVAL {$this->tempoLimite} DAY) < NOW()";
$stmt = BD::getConn()->query($strSQL);
}
public function listar(){
$strSQL = "SELECT * FROM chat ORDER BY id DESC";
return BD::getConn()->query($strSQL);
}
}
<?php
require('config/config.php');
$chat = new Chat();
switch ($_POST['acao']){
case 'inserir':
$chat->excluir();
$chat->setNome($_COOKIE['nome']);
$chat->setMensagem(filter_input(INPUT_POST, 'mensagem'));
if($chat->inserir()){
printf('<p class="ativo">[%s] - %s</p>', $chat->getNome(), $chat->getMensagem());
}
break;
case 'atualizar':
foreach($chat->listar() as $v){
$ativo = ($v['nome'] == $_COOKIE['nome']) ? ' class="ativo"' : '';
printf('<p%s>[%s] - %s</p>', $ativo, $v['nome'], $v['mensagem']);
}
break;
}Carregando comentários...