Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucasgama99

Técnica Long Polling

Recommended Posts

Olá pessoal, será que vocês poderiam me ajudar com uma dúvida?

Bem, venho tentado estudas esses dias a técnica chamada long polling que consiste em manter a conexão com o servidor aberta até o recebimento de um novo dado ou um tempo que estipulamos, mas tenho uma grande dificuldade porque, o material que acho na internet pra estudar essa técnica eu não consigo entender, fora que a maioria é gringo, então se alguem conhece esta técnica e pudesse explicar, ficaria grato ! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, eu até entendi este post, e tudo, mas estou com dificuldades na hora de exibir os resultados pois ele não exibi

Index.php
 
 
<!DOCTYPE html>
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="jquery.min.js" type="text/javascript"></script>
        <script src="client.js" type="text/javascript"></script>
    </head>
    <body>
        <div id="response">
            
        </div>
    </body>
</html>
 
Server.php
 
<?php
 
$PDO = new PDO( 'mysql:host=localhost;dbname=users', 'root', '' );
 
while ( true )
{
    $requestedTimestamp = isset( $_GET['timestamp'] ) ? (int)$_GET['timestamp'] : time();
 
    $stmt = $PDO->prepare( "SELECT * FROM mensagens WHERE timestamp >= :requestedTimestamp" );
 
    $stmt->bindParam( ':requestedTimestamp', $requestedTimestamp );
    $stmt->execute();
 
    $rows = $stmt->fetchAll( PDO::FETCH_ASSOC );
 
    if ( count( $rows ) > 0 )
    {
        $json = json_encode( $rows );
        
        var_dump($rows);
 
        echo $json;
        break;
    }
    else
    {
        sleep( 2 );
        continue;
    }
}
Client.js
 
function getContent( timestamp )
{
    var queryString = { 'timestamp' : timestamp };
 
    $.get ( 'server.php' , queryString , function ( data )
    {
        var obj = jQuery.parseJSON( data );
        $( '#response' ).html( obj.content );
 
        // reconecta ao receber uma resposta do servidor
        getContent( obj.timestamp );
    });
}
 
$( document ).ready ( function ()
{
    getContent();
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom

testei aqui e a unica coisa que tive que mudar, foi sso

var obj = JSON.parse(data);

adicionei o índice 0

var obj = JSON.parse(data)[0];

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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