2013-10-09 2 views
1

user1이 현재 온라인 상태 인 사용자 목록에서 user2를 선택하고 users2에게 메시지를 보냅니다.php 및 ajax를 사용하는 채팅 응용 프로그램 :

user1 보낸 메시지는 ajax를 통해 데이터베이스에 저장됩니다.

현재 setInterval 메서드를 사용하여 5 초마다 데이터베이스에서 메시지를 가져 오는 아약스 호출을 만들고 있습니다. user2에 새 메시지가 없더라도 5 초마다 ajax 요청이 서버로 계속 이동합니다. 이것은 서버로드를 증가시킵니다.

user2가 메시지를받는 경우에만 user2에 메시지를 업데이트 할 수있는 방법이 있습니까?이 감소 요청은 서버로 전송됩니다.

+0

Google에이 문제가 있습니까? 당신은이 아이디어를 가진 첫번째 사람이 아니었을 것입니다. –

+0

[PHP Long Polling] (http://stackoverflow.com/questions/333664/simple-long-polling-example-code)을 확인하십시오. – SpYk3HH

답변

1

Node.js와 socket.io (node.js 용 플러그인)을 살펴보십시오. 자바 스크립트와 PHP에 익숙하다면 그렇게 복잡하지는 않지만 서버와 클라이언트 간의 실시간 연결을 유지하고 실시간으로 데이터를주고받을 수 있습니다. 구현이 다소 특정 애플리케이션이 될 수 있기 때문에 이것이 어떻게 작동하는지에 대한 완전한 예제를 제공하는 것은 광범위합니다. node.js.와 채팅 구현을위한 몇 가지 가이드가 있습니다. 주변에 인터넷 검색을 해보니, 나는 며칠간의 연구 끝에 그것을 구현할 수있었습니다.

이것은 당신이 시작할 수 있어야합니다 http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/

내가 궁극적으로 처음 제안하지만 크게 비효율적 인 것으로 밝혀 정확히했다. 시간을 들여 노드 서버를 설정 했으므로 사용자는 실시간으로 서로 상호 작용할 수 있습니다.