2011-09-21 3 views
0

채팅에 사용할 기술은 무엇입니까? 열린 연결을 만들고 싶습니다.PHP - 실시간 chat

데이터베이스에 새 메시지를 넣을 때. 나는 타이머를 사용하지 않고 자동으로 브라우저에 새로운 메시지를 보내고 싶다.

이 채팅을 수행하는 방법?

웹 호스팅 - Linux가 있습니다. - MySQL 데이터베이스.

새 메시지를 검색하고 타이머를 사용하려고했습니다. 3 초마다 데이터를 검색하는 Ajax를 사용하고 있습니다. 이 솔루션은 비효율적이어서 다른 사람들을 찾고 있습니다.

감사합니다.

+1

PHP + MySQL은 채팅을 빌드하기에 좋지 않은 플랫폼입니다. XMPP/Jabber 서버처럼 설치할 준비가 된 많은 상용 솔루션이 있습니다. –

답변

3

PHP는 서버 쪽 스크립트 언어이므로 페이지가로드되기 전에 모든 PHP가 처리됩니다. chat-like 환경을 생성하려면 Javascript를 사용하여 백엔드 (PHP 부분)에 열린 연결을 설정해야합니다. 폴링 (타이머)과 소켓 (훨씬 더 복잡함)을 포함한 많은 방법이 있습니다.

Javascript를 사용하여 채팅과 같은 서비스를 처리하는 가장 좋은 방법은 Node.js와 그 기능을 체크 아웃하는 것입니다.이 기능은 특히 여기에서 채팅방으로 보여줍니다 : http://chat.nodejs.org/.

NodeJS 및 영구 연결의 문제는 일반적으로 가장 저렴한 호스팅 제공 업체가 영구 연결을 허용하지 않는다는 것입니다. 비용이 많이 드는 전용 서버를 필요로합니다. 자신의 환경에서 NodeJS 유형의 서비스를 특별히 허용하는 호스트가 있지만, 내 머리 꼭대기에서 어떤 것이 있는지 모르겠습니다.

+0

chat.nodejs.org에 연결할 수 없습니다. –

1

COMET 기술을 구현해야 할 수도 있습니다. 긴 풀링 요청을 할 수 있습니다. 한 요청이 완료되면 다른 요청을 시작할 수 있습니다. COMET 연결은 항상 열려 있습니다.

PHP에서는 무한 루프 (예 : while(true))를 생성하고 필요할 때 연결을 끊을 수 있습니다.