0
안녕하세요 제가 구현 한 혜성 (롱 폴링 요청) 기본 응용 프로그램에 아파치에 의해 적시에 허용되지 않습니다 내 응용 프로그램 젠드 프레임 워크를 사용다른 요청은</p> <p>내 PHP 코드는 다음과 같습니다 인해 내 응용 프로그램 업데이트 내용이 서버 응답을 기반으로 혜성 구현
ini_set('set_time_limit', 300);
//get zend session object
$myNamespace = new Zend_Session_Namespace();
//get zend_auth object
$auth=Zend_Auth::getInstance();
$requestTime=time();
$response=array();
$response["returnvalue"]="invalid";
//check for new event on server for 240 seconds else send response
do{
//call_function return true or false
$query=$this->call_function($auth->getIdentity()->user_id,$auth->getIdentity()->lastViewedTime);
//some code here
if(!$query){
//sleep for some time;
sleep(60);
}else{
//send response to server when something new has occured
$lastViewed=round(microtime(true) * 1000);
$user=$auth->getStorage()->read();
$user->lastViewedTime=$lastViewed;
$auth->getStorage()->write($user);
$response["returnvalue"]="valid";
break;
}
}while(true && (time()-$requestTime)<240);
header("Content-Type: application/json");
echo json_encode($response);exit;
내 자바 스크립트 코드는
var counter = {
'poll' : function() {
$.ajax({
type: "GET",
url: '/long-polling',
data:"a=b",
dataType:"json",
async:true,
success:function(response){
counter.update(response);
},
error: function(XMLHttpRequest,textStatus){
alert("This Operation Could not be Completed. Please check your Internet Connection and try Again. If problem persists please contact Support");
}
});
},
'update' : function(json) {
alert(json.data);
counter.poll();
}
};
$(document).ready(function(){
counter.poll();
});
내 아파치 구성이
입니다 블록은 5 분어떤 suggetions이 때까지 요청/서버가 응답하지 않습니다 6,
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 240
MaxClients 150
MaxRequestsPerChild 4
롱 폴링은 잘 작동하지만, 브라우저는 서버에서 다른 요소, 이미지를로드하기 위해 다른 요청을 보낼 때 문제는?
세션을 사용하고 있습니까? –
그래, 내가 세션을 사용합니다 @ 페카 –
당신은 코드에 표시되지 않습니다, 당신이 그것을 수정해야합니다 - 아마 당신의 문제 : 각 요청에 대한 PHP/아파치 차단?] (http://stackoverflow.com/q/430750) –