2011-04-12 3 views
3

모두에게 좋은 하루.PHP, 자바 스크립트, 아약스 - 의사 소통 2 사용자

나는이 작업을 수행해야합니다

사용자 X 프레스는 버튼을 사용자 Y가 사진을 볼 때. 그 사용자 Y는 아무것도 보지 않습니다.

나는 이것을 다음과 같이했다. 나는 mysql 서버에 데이터베이스를 만들고 사진과 플래그가있는 테이블을 만들었다. 사용자 X가 버튼을 누르면 아약스 요청을 보내고 플래그를 해당 사진으로 변경합니다. 또한 사용자 Y는 1 초마다 ajax 요청을 전송하여 변경 사항이 있는지 확인합니다.

소리가 좋아요, 괜찮아 보이는군요 ... 작동하지만 너무 좋아요. 100,000 명의 사용자가 1 초마다 1 건의 아약스 요청을 보내면 서버가 충돌합니다. 먼저 mysql 서버에 아파치.

그래서 ... 내 질문은 어쨌든 이렇게 많은 아약스 요청없이 이렇게 할 수 있습니까? 브라우저에 같은 소켓을 유지하고 나중에 이미지를 보내도록 지시하는 특정 "물건"이있는 페이지를 보내는 것과 같은 것입니까? HTML 페이지/이미지/뭐든간에 이미지 대신 스트림과 같은 것입니다.

나는 자바 애플릿이 해결책이 될 것이라는 것을 알고 있지만 PHP (서버 측용) + js (클라이언트 측용) 솔루션이 필요합니다.

그리고 아마도 나는 "당신이 대답 할 수 없다"라고 대답 할 것이지만, 시험해 볼 만하다.

+0

는 1 초마다해야합니까? 3 초는 어때? 즉,로드가 1/3로 즉시 감소합니다. 100,000 명의 사용자가 추락하면 이론적으로 300,000 명의 사용자를 사용할 수 있습니다. –

+0

실제로 0.5 ... 1의 요청을하는 것이 타협이었습니다. 또한 정리 시간을 추가했습니다 ... 120 초마다 10 초 동안 사용자가 아무 것도 보내지 않고 ... 여전히 괜찮지는 않습니다. – zozo

+0

HTTPS에 대한 가능성이 있습니까? 나는 당신이 모든 클라이언트 컴퓨터와 안전한 터널을 가지므로 비동기 응답을 다시 클라이언트로 보낼 수 있기 때문에 이것을 묻는다. –

답변

2

HTTP는 상태 비 저장이므로 클라이언트와 서버간에 영구 또는 오래 지속되는 소켓 연결을 만들어야합니다.

이것은 PHP, AJAX 및 Ruby 백엔드로 작성된 채팅 응용 프로그램입니다.

Web Chat application main page, 더 구체적으로 part about the socket server

2

WebSockets?

편집. HTTP keep-alive 도움이 될 수 있습니다.

+0

음 ... 그런 것. 그러나 내가 읽은 바에 따르면 그것들은 더 새로운 브라우저에서만 구현됩니다 ... 또한 IE도 보지 않습니다 ... 내 상사가 그것에 동의 할 것 같지 않습니다. (비록 내가 하겠지만) – zozo

관련 문제