2011-08-18 4 views
6

저는 실시간 응용 프로그램 (예 : 채팅, MMORPG)에서 초보자이지만 PHP와 아약스에서 좋은 편입니다. 나는 php와 ajax (Interval 1000ms)를 사용하여 채팅을 프로그래밍했다. 그 후, 내 사이트는 서버에 큰 압력을받는 이유 때문에 매우 무거워졌다 !!실시간 및 PHP?

서버의 부담을 줄이는 방법에 대한 정보가 필요합니다. 사전에

감사

+3

https://github.com/kakserpom/phpdaemon 더 적절한 언어를 고려한다. –

+0

나는 Dagon에 동의합니다. 실시간 응용 프로그램은 PHP를 실행하는 단일 서버를 정말로 처벌 할 것입니다. 나는 노드를 사용하기 위해 실시간 PHP 애플리케이션을 다시 작성했다.js 대신에, 어떤 드라마도없이 1 초에 1000 초의 히트를 얻습니다. –

+0

기존 인프라에 만족한다면 실시간 인프라 부분을 [호스팅 된 실시간 서비스] (http://www.leggetter.co.uk/real-time-technologies-guide)로 아웃소싱하는 것이 좋습니다. # 호스팅 된 서비스). – leggetter

답변

1

long-polling ajax

것은 한 번만 분 또한 아약스에 모습을 가질 수

+0

또한 서버에 부담을줍니다. faceboock 채팅 속도가 빠릅니까? 나 do not는 그것을 만드는 방법을 알고있다!! – Lokers

+3

@Lokers : 페이스 북에 60,000 개의 서버가 있습니다 ... 예 페이스 북 채팅이 매우 빠릅니다. – genesis

+0

사이트는 호스트 만 사용하며 빠릅니다. – Lokers

0

(요청 60/분하지만 1/분 없음) 요청 푸시 엔진을 사용하여 실시간 데이터 스트리밍을 수행합니다. http://www.ape-project.org/

+0

감사합니다. 나는 그것을 테스트 할 것입니다. – Lokers

1

채팅을 소켓 기반 웹 응용 프로그램으로 변환해볼 수 있습니다. 나는 AJAX를 사용하거나 소켓을 사용하는 것 사이의 성능 차이에 대해 모르지만,이 소켓을 사용하면 내게 더 많은 논리가 들린다. :)

+0

감사합니다 사이트 또는 게시물을 알고 나에게 소켓에 대한 정보 ?? – Lokers

+0

http://devzone.zend.com/article/1086 또는 http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/ Google에서 '소켓 채팅 PHP '.. :) – Abbas

1

결과를 캐시 할 수 있습니다. memcached (key => value) 캐시를 설정하면 데이터베이스로드가 줄어들 수 있습니다.

새 요청이 들어 오면 응용 프로그램에서 캐시에있는 값이 memcache에 있는지 묻습니다. 그렇지 않으면 데이터베이스 엔진에 값을 물어보고 값을 사용자에게 반환하고 다음에 캐시하십시오.

1

재미있는 PHP 라이브러리 WebSocket을 통해 실시간으로, 클라이언트와 서버 간의 양방향 응용 프로그램을 만들 수 없습니다 도구 개발자에게 제공 : PubNub보다 더 http://socketo.me/

1

알다시피, 채팅 및 실시간 게임과 같은 비 차단 및 실시간 응용 프로그램을 구축하는 데 사용할 수있는 여러 라이브러리가 있습니다.

  1. nodejs 같은 순수 PHP에서 구현 reactphp,하지만 개발은 최근 매우 활성화되지 보인다.

  2. Skyray, C http://github.com/SkyrayLabs/Skyray이 날에 의해 만들어진 PHP를위한 네트워킹 라이브러리입니다

    에 writen PHP를위한 네트워킹 라이브러리, 그것은 활성 개발에서 아직도있다.

  3. swoole, https://github.com/swoole/swoole-src

  4. phpdaemon는