Domanda

Io sono la creazione di un server proxy semplice per il mio sito web. Perché non sto usando mod_proxy e mod_cache è una discussione diversa. Ecco il codice:

    shell_exec("nohup curl --create-dirs -o {$write_path} {$source_url} > /dev/null 2> /dev/null & echo $!");
    sleep(1);

    $read_speed = 65.5; # 65.5 kb/s download rate
    $handle = fopen($write_path, "rb");

    $content_type = select_meta_item($headers, 'Content-Type');
    $file_size = select_meta_item($headers, 'Content-Length');
    send_headers($content_type, $file_size); 
    flush();

    while (!feof($handle))
    {
        echo fread($handle, round($read_speed * 1024));
        flush();
        sleep(1);
    }

    fclose($handle);

il flusso di un MP3 non funziona con questo metodo. Riproduce in Chrome, ma non in Firefox. Inizialmente sarò usando questo per lo streaming di file MP3 tramite JW Player Long Tail. Se tutto funziona, Sarò anche usando questo per inviare i file ZIP.

È stato utile?

Soluzione 2

ho capito. Il codice funziona benissimo.

Il file è stato chiamato da Apache dal 404 handler (ErrorDocument). Apache ha inviato automaticamente il 404 intestazione prima della script PHP essere chiamato.

Questo file (codice di cui sopra), non si avvia il processo di CURL e reindirizza a un file che i flussi. Dal momento che Apache ha restituito il 404, Firefox ha ignorato la risposta MP3. (Mentre Chrome non ha fatto). Ora che ho reindirizzare, funziona benissimo.

Altri suggerimenti

La questione è se il formato di file può essere trasmesso dal client di attuazione. Se Firefox non supporta la riproduzione di un MP3 fino a quando si è fatto il download , nessuna quantità di inganno lato server vi aiuterà a raggiungere streaming. Avrete bisogno di sostegno sul lato client, come ad esempio un lettore in linea flash-based.

Per i file di avviamento postale, dato che la tabella di codifica è posto al fine dell'archivio, nessun software sarà in grado di aprirlo finché non è stato completamente scaricato.

Come nota a margine, avete considerato la creazione di una FIFO, indicando curl all'ingresso FIFO, e applicando readfile all'uscita FIFO, lasciando così le cose maniglia OS?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top