Ir para conteúdo
manoaj

ERRO DURANTE O USO DO LONG POLLING

Recommended Posts

Pessoal estou usando o long polling pra me retornar notificacoes em tempo real, esta tudo funcionando normalmente, estou inserindo os dados no db e o codigo me retorna as novas notificacoes, mas se eu der um refresh na pagina ela fica em um loop infinito tentando atualizar e gerando esse erro no meu php MySQL server has gone away.

Como resolvo e o que siguinifica esse erro dentro desse contexto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema de se trabalhar com long polling é justamente a quantidade de conexões abertas.

 

Após conectar-se ao servidor MySQL, por questões operacionais e de desempenho, o servidor encerra a conexão ociosa automaticamente. Para resolver este erro, programe seu script para conectar-se ao banco, executar a query e encerrar a conexão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por marlone
      Estou tentando gerar um boleto com o checkout pagseguro transparente, mas não consigo de jeito algum. Alguém tem algum codigo pronto para disponibilizar ?
    • Por Dionatan Melo
      Estou integrando com a API Cielo 3.0, utilizado o framework Laravel, ao realizar os testes e quando criado um novo pagamento, os campos Status, ReturnCode e ReturnMessage retornam nulos.
      Segue abaixo o código de testes, lembrando que as requisições estão sendo testadas com o Postman.
      use Illuminate\Http\Request; use Cielo\API30\Merchant; use Cielo\API30\Ecommerce\Environment; use Cielo\API30\Ecommerce\Sale; use Cielo\API30\Ecommerce\CieloEcommerce; use Cielo\API30\Ecommerce\Payment; use Cielo\API30\Ecommerce\CreditCard; use Cielo\API30\Ecommerce\RecurrentPayment; use Cielo\API30\Ecommerce\Request\CieloRequestException; class CieloPaymentController extends Controller { public function store(Request $request) { // Configurão do ambiente, sandbox ou production. $environment = $environment = Environment::sandbox(); // Configuração do merchantId e mercantKey $merchant = new Merchant('a2a9c6cb-9479-43b9-8361-e0e62101f8be', 'SQQLXFTEUFTPIAVSX0WJXLKZVZJNBINKDKXUGCFC'); // Criando uma instancia com o id do pagamento. $sale = new Sale(mt_rand(11111,99999)); $customer = $sale->customer("Fulano de tal"); $payment = $sale->payment(1500); $payment->setSoftDescriptor('Empresa Teste'); $payment->setRecurrent(true); // Criando uma instancia de pagamento com cartão de credito. $payment->setType(Payment::PAYMENTTYPE_CREDITCARD) ->creditCard("123", CreditCard::VISA) ->setExpirationDate("12/2018") ->setCardNumber("4024.0071.5376.3191") ->setHolder("Fulano de Tal"); // Configuração do pagamento recorrente $payment->recurrentPayment(true)->setInterval(RecurrentPayment::INTERVAL_MONTHLY) ->setAuthorizeNow(true); $payment->setProvider(Payment::PROVIDER_SIMULADO); // Crie o pagamento na Cielo try { // Configuração do SDK com o merchant e o ambiente apropriado para criar a venda $sale = (new CieloEcommerce($merchant, $environment))->createSale($sale)->getReturnCode(); $recurrentPaymentId = $sale->getPayment()->getRecurrentPayment()->getRecurrentPaymentId(); } catch (CieloRequestException $e) { // Em caso de erros de integração, podemos tratar o erro aqui. $error = $e->getCieloError(); } return $sale; } }  
    • Por ceocadu
      Boa tarde pessoal,
      estou com um problema e ja nao sei como resolver.
      Tenho uma pagina shopping cart, feita por action ajax, uma pagina html com um form post, e uma pagina para envio do email.
      Nesta pagina de envio, consigo imprimir as infos do form, porem as infos do shopping cart so consigo fazer que aparecam no navegador pelo require_once('ajax-action.php');
      preciso que esse shopping cart seja enviado para um email junto com as infos do form.
      Segue o codigo do post do form
      <?php 


      $destinatario = "ti@pdmg.com.br";
      $nome = $_POST['nome'];
      $email = $_POST['email'];
      $unidade = $_POST['unidade'];
      $telefone = $_POST['telefone'];
       // monta o e-mail na variavel $body
      $body = "===================================" . "\n";
      $body = $body . "PEDIDO ONLINE - SNIPER FRANQUIA" . "\n";
      $body = $body . "===================================" . "\n\n";
      $body = $body . "Nome: " . $nome . "\n";
      $body = $body . "Email: " . $email . "\n";
      $body = $body . "Telefone: " . $telefone . "\n";
      $body = $body . "Unidade: " . $unidade . "\n\n";
      $body = $body . "===================================" . "\n";
      echo nl2br($body);  
      require_once('ajax-action.php');
      ?>
       
      E essa é a funcao do shopping cart

      <?php
      session_start();
      require_once ("Product.php");
      $product = new Product();
          
      $productArray = $product->getAllProduct();
      if(!empty($_POST["action"])) {
      switch($_POST["action"]) {
          case "add":
              if(!empty($_POST["quantity"])) {
                  $productByCode = $productArray[$_POST["code"]];
                  $itemArray = array($productByCode["code"]=>array('name'=>$productByCode["name"], 'code'=>$productByCode["code"], 'quantity'=>$_POST["quantity"], 'price'=>$productByCode["price"]));
                  
                  if(!empty($_SESSION["cart_item"])) {
                      $cartCodeArray = array_keys($_SESSION["cart_item"]);
                      if(in_array($productByCode["code"],$cartCodeArray)) {
                          foreach($_SESSION["cart_item"] as $k => $v) {
                                  if($productByCode["code"] == $k) {
                                      $_SESSION["cart_item"][$k]["quantity"] = $_SESSION["cart_item"][$k]["quantity"]+$_POST["quantity"];
                                  }
                          }
                      } else {
                          $_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
                      }
                  } else {
                      $_SESSION["cart_item"] = $itemArray;
                  }
              }
          break;
          case "remove":
              if(!empty($_SESSION["cart_item"])) {
                  foreach($_SESSION["cart_item"] as $k => $v) {
                          if($_POST["code"] == $k)
                              unset($_SESSION["cart_item"][$k]);
                          if(empty($_SESSION["cart_item"]))
                              unset($_SESSION["cart_item"]);
                  }
              }
          break;
          case "empty":
              unset($_SESSION["cart_item"]);
          break;        
      }
      }
      ?>
      <?php
      if(isset($_SESSION["cart_item"])){
          $item_total = 0;
      ?>    
      <table class="tutorial-table" name="tutorial-table">
      <tbody>
      <tr>
      <th><strong>Nome</strong></th>
      <th><strong>Codigo</strong></th>
      <th class="align-right"><strong>Quantidade</strong></th>
      <th class="align-right"><strong>Preço Unitário</strong></th>
      <th></th>
      </tr>    
      <?php        
          foreach ($_SESSION["cart_item"] as $item){
              ?>
                      <tr>
                      <td><strong><?php echo $item["name"]; ?></strong></td>
                      <td><?php echo $item["code"]; ?></td>
                      <td align="right"><?php echo $item["quantity"]; ?></td>
                      <td align="right"><?php echo "R$".$item["price"]; ?></td>
                      <td align="center"><a onClick="cartAction('remove','<?php echo $item["code"]; ?>')" class="btnRemoveAction cart-action"><img src="images/icon-delete.png" /></a></td>
                      </tr>
                      <?php
              $item_total += ($item["price"]*$item["quantity"]);
              }
              ?>
              
      <tr>
      <td colspan="3" align=right><strong>Total:</strong></td>
      <td align=right><?php echo "R$". number_format($item_total,2); ?></td>
      <td></td>
      </tr>
      </tbody>
      </table>        
        <?php
      }
      ?>
    • Por Kaka_Ubuntu
      Como abrir softwares e extensões como PDF, PNG, etc através do PHP?
      Eu estou usando o Debian. Com linguagem PHP7, Mysql e Apache2. Meu objetivo é ser capaz de abrir os programas como navegador, libreoffice, etc usando a linguagem PHP. Eu já tentei usar: shell_exec, exec, system, passthru .... exemplo, tentei abrir o navegador.
      shell_exec ("xdg-open 'https://www.google.com'"); shell_exec ("xdg-open/usr/bin/Chrome browser"); shell_exec ("xdg-open sensitive-browser"); shell_exec ("x-www-browser https://www.google.com"); shell_exec ("sensitive browser"); shell_exec ("/usr/bin/chromium-browser"); Mas eu não consegui abrir, alguém sabe?
    • Por Anthony Stephen
      Olá pessoal, é o meu primeiro contato com o PHP, e estou tentando desenvolver uma página de cadastro/login.
      A página em si já está funcionando, e realizando a consulta no banco de dados, mas eu gostaria de exibir uma mensagem de erro quando for constatado que a conta não existe no BD.
       
      Até agora tenho duas páginas principais, são elas: login.php e login-connect.php.
      Gostaria de exibir a seguinte div na página login.php, se o login for inválido:
      <div class="alert alert-danger alert-dismissible fade show" role="alert"> Ops! password and/or invalid user. <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> Ficaria assim:
       

       
      login-connect.php
      Da maneira que está, ele só exibe em outra página em branco:
      <?php (... códigos inicializadores ...) //Realiza consulta dentro do BD $result = mysqli_query($con, "SELECT * FROM `usuario` WHERE `email` = '$login' AND `password`= '$senha'"); //Verifica se as informações estão dentro do BD if(mysqli_num_rows ($result) > 0 ){ $_SESSION['login'] = $login; $_SESSION['password'] = $senha; header('location:main.php'); } else{ unset ($_SESSION['login']); unset ($_SESSION['password']); echo '<b>Atenção</b> Login ou senha inválidos, tente novamente.'; } ?>  
      Obs: Sei que da maneira que o código está, é impossível de fazer a div aparecer, porque não declarei isso em lugar nenhum. Mas aí está o problema, como fazer?
      Desde já, muito obrigado!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.