개발 Q&A

제목 롱폴링 구현중 질문 있습니다.
글쓴이 짭짭 작성시각 2014/01/14 17:00:16
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 22001   RSS
현재 코드이그나이터에서 롱폴링을 구현중인데
문제는 반복문으로 클라이언트를 잡아둔 상태에서 있어야 하니까

사용자가 서버에 다른 요청을 하면 반복문 처리 때문에 한참 후에야 응답하더라구요
롱폴링으로 새로운걸 반복문에서 체크하는 상태에서

사용자의 다른  요청을 바로 처리하는 방법이 없을까요?

$startTime = time();
 
$maxC>
 
while( (time() - $startTime) <= $maxConnectionTime) {
$currentCnt = $this->hospitalmemo_m->checkMemoCnt($hIdx);
if($currentCnt > $beforeCnt) {
echo json_encode($currentCnt);
break;
}
else {
sleep(5);
}
}
 다음글 jquery 로 한컴사전 기능 구현 (1)
 이전글 밑에 죄송합니다ㅠ include이게 안되는것이 아니라 ... (3)

댓글

변종원(웅파) / 2014/01/14 18:18:55 / 추천 0
php는 한번에 하나만 처리합니다. (한놈만 패죠)

큐 서버 사용하셔야 합니다.



큐를 사용한다고 해도 반복문 돌아가는 중간에 다른 건 실행할 수 없습니다.

아파치 서버단에서 멀티 접속을 처리해주지 php단에서 처리하지는 않습니다.

php로 롱폴링을 구현하는건 개념상 안 맞습니다. ^^;
 
api중에서 시간이 오래 걸리는 api는 티켓번호를 돌려주고 그 티켓번호로 주기적으로 체크하는 방식도 있습니다.

 
변종원(웅파) / 2014/01/14 18:36:47 / 추천 0