2012-10-11 2 views
1

현재 멀티 플레이어 Connect 4 게임을 작성 중입니다. 플레이어가 이동을하면 해당 이동이 Connect 4 보드의 모든 위치의 상태를 포함하는 파일에 기록됩니다.PHP에서 파일의 변경 사항을 확인하는 방법

나는 현재 이전 루프 반복 이후 변경 사항을 확인하는 지연된 루프가있는 PHP 스크립트가 있으며, 변경 사항이있는 경우 PHP 스크립트는 업데이트 된 파일을 반환하여 플레이어로 보냅니다.

이 방법은 매우 비효율적이며 지저분합니다. 게임의 변경 사항을 즉시 통보받을 수있는 더 좋은 방법이 있습니까?

또한 inotify를 사용하려고했지만 내 서버에서는 작동하지 않습니다. (Mac OS X Server 10.8은 아마도 그 이유 일 것입니다 ...)

+1

게임 웹 기반입니까? – NullUserException

+0

어떤 종류의 변화를 겪고 있습니까 ??? – Baba

+0

왜 mySQL 데이터베이스를 사용하지 않고 변경 사항을 기록합니까? – Laurence

답변

0

PHP에서는 어렵습니다. node.js을 사용하는 것이 어떻습니까? 이 기능들은 바로 내장되어 있습니다.

0

이렇게 폴링을 백그라운드에서 수행하는 것은 그렇게 드문 일이 아닙니다. 당신이 싫어하는 것에 대해 좀 더 구체적으로 표현할 수 있습니까?

더 영리한 것을 찾고 있다면 각 플레이어는 "게임 세션"API에 비동기 적으로 연결 유지 요청을 열 수 있습니다. 구현은 변경 사항을 파일에서 모니터링하고 변경이 감지되면 다음 청크를 보낼 수 있습니다. 파일 또는 DB의 변경 여부는 서버 구현에 달려 있습니다. 물론 클라이언트 응용 프로그램은 요청이 계속 열려 있는지 확인하고 닫히면 다시 연결해야합니다.