Home  >  Article  >  Backend Development  >  PHP implements long polling [code example]

PHP implements long polling [code example]

藏色散人
藏色散人forward
2020-06-22 13:39:093710browse

In the traditional AJAX polling method, the client queries the server for the latest data at user-defined intervals. This method of pulling data requires a short time interval to ensure the accuracy of the data, but if the time interval is too short, the customer service side will send multiple requests to the server in a short period of time.

Reverse AJAX, which is the so-called long polling or COMET. The server and client need to maintain a long-term request, which allows the server to return messages to the client when it has data.

After blowing the water, let’s get to the point:

Here we use AJAX to request the data.php page to obtain the value of ‘success’, and the request time reaches 80 seconds. If no 'success' is returned from the server during these 80 seconds, the connection status will remain until data is returned or the value of 'success' is 0 before the connection is closed. After closing the connection, continue with the next request.

index.html




    
    


This is an infinite loop. The end condition of the loop is to obtain the return result and return Json data.

And accept the $_POST['time'] parameter to limit the loop timeout to avoid excessive waste of resources. (The browser will not send a message to the server when it is closed, and the use may continue in a loop)

data.php

"1",'name'=>'success','text'=>$rand);      
            echo json_encode($arr);      
            exit();      
        }      
              
        //到指定超时时间还未返回数据则断开连接     
        if($i==$_POST['time']){      
            $arr=array('status'=>"0",'name'=>'error','text'=>'无数据');      
            echo json_encode($arr);      
            exit();      
        }      
    }   
?>

For more related technical articles, please visit PHP Chinese website !

The above is the detailed content of PHP implements long polling [code example]. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete