Perché secondo voi questo streaming si blocca?

alessio85

Nuovo Utente
23 Nov 2012
7
0
0
il codice è il seguente...Si connette ad un api twitter che restituisce un flusso dei tweet circolanti in esso.. e vorrei che girasse per quanto dico io... ma dopo un po di tempo... circa mezz'ora dentro $fp non trovo più niente (io lo vorrei far girare per qualche giorno)... c' è qualcuno che mi sa spiegare il perché??
Forse esiste una funzione migliore x connettersi ad un flusso di dati in streaming...se fosse me la potete suggerire???
Un grazie infinito a chi risponderà...

PHP:
$fp = fsockopen("ssl://stream.twitter.com", 443, $errno, $errstr, 30);
            $ini=time();
            $fine=time();
            $passati=$fine-$ini;
            if (!$fp)
            {
                die ("ERROR: Twitter Stream Error: failed to open socket");
            } else
            {
                //
                // build the request
                //https://'.'stream.twitter.com/1/statuses/sample.json
                $request  = "GET /1/statuses/sample.json";
                $request .= " HTTP/1.1\r\n";
                $request .= "Host: stream.twitter.com\r\n";
                $request .= "Authorization: Basic ";
                $request .= base64_encode($this->m_username . ':' . $this->m_password);
                $request .= "\r\n\r\n";

                //
                // write the request
                //
                fwrite($fp, $request);

                //
                // set it to non-blocking
                //
                stream_set_blocking($fp, 0);
                //(!feof($fp))&&
                while(($passati<($this->durata)))
                {   
                    $fine=time();
                    $passati=$fine-$ini;
                    
                    $read   = array($fp);
                    $write  = null;
                    $except = null;
                    $res = stream_select($read, $write, $except, 600, 0);
                    if ( ($res === false) || ($res == 0) )
                    {
                        break;
                    }

                    //
                    // read the JSON object from the socket
                    //
                    $json = fgets($fp);
                    if ( ($json !== false) && (strlen($json) > 0) )
                    {
                        //
                        // decode the socket to a PHP array
                        //
                        $data = json_decode($json, true);
                        if ($data)
                        {
                            //
                            // process it
                            //
                            $this->process_tweet($data);
                        }
                    }
                }
            }
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
il problema può essere che gli script hanno un tempo di vita e puo essere che lo script si arresti prima di terminare
quindi prova a settare il tempo di vita per quello che ti serve.
poi vedo una cosa che non mi quadra, scrivi:
PHP:
<?php
//....
	$ini=time();
	$fine=time();
	$passati=$fine-$ini;
//...
?>
messi cosi in prtatica hai $ini uguale a $fine per cui $passati == 0, probabilmente devi spostare la fine e la sottrazione dopo le operazioni che gli fai fare
 

alessio85

Nuovo Utente
23 Nov 2012
7
0
0
ciao e grazie x la risposta...
però prima di quel codice (che non ho riportato) c'è il seguente comando set_time_limit(0); il che non dovrebbe far terminare lo script...
inoltre $ini uguale a $fine per cui $passati == 0 è bruttino è vero ma tanto non è un problema perchè tanto 0 sarà minore della $durata e quindi non mi crea problemi...
uffa questo script mi sta facendo impazzire da una settimana ....
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Secondo voi Joomla! è meglio di Drupal? Perché? Joomla 9
V [PHP] Perché non funziona ? PHP 1
M Perché Javascript non mi valida questo form? Javascript 0
J Ciao ho bisogno di capire, perché questo form non funziona più sul sito ASP.NET 0
S Non mi funziona la connessione/query mysqli. Ma perché? PHP 1
F Perché usate ASP.net? ASP.NET 21
P Perché devo riavviare il pc per connettermi a internet? Adsl e Connettività 1
K Perché "session_start" mi cambia l'impaginazione su explorer? PHP 14
alessandro1997 Perché programmare a oggetti PHP 22
S Perché mi restituisce tutti gli users PHP 6
L perché questo programma non funziona? Programmazione 0
G Con Dreamweaver, perché cerca non trova la selezione? Webdesign e Grafica 4
GENZIANA Perché non vedo le mie pagine in locale? PHP 4
L perché cambiano le icone????? Discussioni Varie 8
otto9due SQLSTATE[HY093]: Invalid parameter number: parameter was not defined ? Perchè secondo voi? PHP 5
A Mantenere la validazione reindirizzandoci su un secondo sito WEb. (ASP.NET) ASP.NET 0
ken_korn Lavorare nel settore informatico senza laurea, possibile secondo voi? Discussioni Varie 10
R Può secondo voi un sito essere nella seconda pagina e non fare traffico? SEO e Posizionamento 3
otto9due Immagine scompare ed esce testo, secondo click torna tutto com'era.. jQuery 7
O cicli di scrittura dati e copia dati secondo una griglia predefinita Visual Basic 2
C Passare dal terzo al secondo livello di un dominio su Aruba Domini 2
K ciao il mio secondo nome è casinista Presentati al Forum 2
M Creare rete domestica su piano terra, secondo e terzo piano Reti LAN e Wireless 2
N Programma per gestire Cookies secondo disposizioni del Garante Privacy 3/6/2014 G.U. 126 Leggi, Normative e Fisco 0
M Il risultato stampato rimane per un secondo e poi scompare! Javascript 3
M [PHP]Ordinare dati secondo prezzo PHP 2
S [jQuery] Far apparire un div per qualche secondo Javascript 4
F Evento al secondo click su un ancora jQuery 21
D Copiare contenuto di una cartella su secondo hard disk Windows e Software 2
L Secondo voi rischio il timout della pagina? PHP 13
C Ordinare alfabeticamente un array e ordinare un secondo array in funzione del primo. Javascript 12
anthares Riordinare colonna secondo numeri crescenti PHP 5
anthares Contare record in tabella secondo certe condizioni PHP 21
anthares Interrogare database secondo porzione di numeri PHP 5
I Script ogni secondo in background PHP 2
A problema con checkbox funzionante solamente al secondo "tentativo" Javascript 12
GiuseppeWeb Photoshop secondo i clienti Discussioni Varie 5
D Problemi Secondo livello Menu orizzontale HTML e CSS 0
S Consiglio sito web per lettura di un file di testo che si aggiorna ogni secondo Javascript 9
T Obtortocollo - Un blog secondo prescrizione medica Presenta il tuo Sito 1
J Secondo voi come devo procedere?? PHP 1
D mettere un video flash come sfondo e in secondo piano HTML e CSS 0
D menu in php secondo livelli utente PHP 7
B Ricerca secondo data PHP 3
I template lecito secondo voi? Presenta il tuo Sito 3
G Primo popup che si chiude all'apertura del secondo Javascript 1
M Ordinare il secondo elemento di uno split() PHP 10
S Rimpicciolire immagini secondo risoluzione schermo HTML e CSS 4
D Secondo voi è legale commercializzare... SEO e Posizionamento 10
B Impostare un DIV in primo piano e un'altro DIV in secondo piano HTML e CSS 2

Discussioni simili