2012-07-29 7 views
-1

모든 사용자의 대화가 표시되는 textArea가 있습니다. 사용자가 메시지를 입력하고 보내기 버튼을 클릭하면 데이터베이스/파일을 사용하지 않고 로그인 한 모든 사용자의 textArea에 표시하려고합니다. 나는 그것이 AJAX와 PHP만으로 수행되기를 원한다.PHP의 간단한 채팅 응용

  function send1() 
      { 
       req.open("GET", "process.php?q="+document.getElementById("msg").value, true); 
       req.send(); 
      }  
+0

PHP의 작동 방식이 아닙니다. 클라이언트가 PHP가 해당 클라이언트에만 에코하려는 개인 데이터를 볼 수 있다면 보안 재앙을 생각해보십시오. 채팅 응용 프로그램에 더 적합한 언어가 필요합니다. Look in [node.js] (http://nodejs.org) –

+0

나는 학습 목적으로하고있다. 보안 위험에 대해 알고있다. 그냥 내가 뭘 하려는지 성취 할 수 있는지 알고 싶다. – dpanshu

+0

또한 백엔드에서 파일을 작성하고 유지하고 싶지 않다. 모든 클라이언트에게 모든 것을 알려주는 방법이 있는지 알고 싶다. – dpanshu

답변

1

WebSocket을를 사용하는 간단하지만 AJAX를 사용하는 경우, DB 또는 파일에 보낸 메시지를 저장하고, 예를 들어, 또한 당신이 유지해야이 내용을 30 초마다 읽어 클라이언트 측을 구성 할 것이다 당신의 db/파일은 마지막 50 개의 메시지 만 포함하고, 새 메시지가 추가되면 첫 번째 메시지를 지 웁니다. 서버와 클라이언트 측이 어떻게 작동하는지 이해하고, 애플리케이션 모델을 생각해보십시오.

+0

예 할 수있는 유일한 방법은 다음과 같습니다. 소켓으로. 난 그냥 거기에 PHP에서 할 수있는 방법이 있는지 알고 싶었어요. – dpanshu

+0

PHP에는 WebSocket 구현이 있으며 그물을 서핑합니다. – micnic

1

메시지 채널을 구독하려면 소켓을 사용하는 것이 좋습니다. Ryan Bates는 채널 서버를 시작하고 PhpMyCoder가 가져온 보안 문제를 처리하는 Ruby on Rails의 훌륭한 보석을 가지고 있습니다.

설정 안내서는 private-pub screencast을 확인하십시오.

데이터베이스에 아무 것도 저장하지 않으려면 node.js를 사용할 수 있습니다. Here's some sample node.js code

+0

나는 보안상의 이유로 PHP에서 할 수있는 방법이 없다고 생각한다. – dpanshu

+0

아니요, 그들은 단지 RoR과 Node.js에 중독되어 있습니다 :) PHP를 사용할 수도 있습니다. – micnic