Personal blog, mostly about software engineering.

PHP - Long Polling

Long Polling is a technique used when you need create a real time application, where the server will wait from a event occur to response the request.

On this example, we will create a webchat, using a simple text file. The server will read the text file, and will hold the conection until the file has new lines. To check it, the server will receive the current line number.

Go to the code

// Disable max runtime
function poll($cur_line){    
    // An infinite loop
        // Read the file
        $data = file_get_contents('chat.txt');
        $lines = explode("\n", $data);

        if(count($lines) == $cur_line || empty($lines[0])){
            // Sleep for 1 seccond if no new line
            $ret = array();
            $ret['lines'] = array();
            // Put new lines in the vector
            for($cur_line; $cur_line < count($lines); $cur_line++){
                $ret['lines'][] = $lines[$cur_line];
            // Update the cur_line to response
            $ret['cur_line'] = $cur_line;
            // Return an JSON
            return json_encode($ret);

// echo the result
echo poll($_POST['cur_line']);

You can see the complete code here

Old Post

This is an old post migrated from my old blog. You can see the original content here[pt-br]

If you'd like to give any feedback on this article, email me at
Category: PHP
Tags: PHP