2012-07-15 6 views
0

여러 사용자가 브레인 스토밍 등을 입력하고 편집 할 수있는 캔버스를 만들고 싶습니다. PHP를 백엔드로 생각하고 있습니다. 그것을 위해 사용되는 기법은 무엇입니까? 예를 들어, 순수 텍스트라고 말하면됩니다. Google 웨이브 (b4)와 Google 문서에서 텍스트를 어떻게 업데이트합니까?비동기 웹 앱과 같은 Google 웨이브를 만드는 기술 기법

그냥 websocket (또는 js 풀링)을 사용하고 텍스트 파일을 업데이트합니까? 또는이 문제를 해결하기 위해 더 나은 논리적 인 방법이 있습니까?

답변

1

글쎄, Brad의 대답 에서처럼 쉽지는 않지만 그는 부분적으로 맞습니다. 웹 소켓이 필요하게 될 것입니다. 그러나 논리적으로 협업 환경을 만드는 것은 그렇게 간단하지 않습니다. 모든 사용자가 동일한 문서를 보는 모든 다른 사용자에게 변경 사항을 브로드 캐스팅하는 것과 같은 문제가 있습니다. 그러면 누가 언제 무엇을 변경하더라도 모든 사용자가 똑같은 것을 볼 수있게해야합니다. 여러 사용자가 같은 문서를 공동으로 작업 할 때 어려워집니다. 서로 변경 사항을 병합하는 동안 충돌이 발생할 수 있습니다.

PHP와 관련된 한, 언어는 실제로 문제가 아닙니다. 그게 당신이 위에서 언급 한 문제를 처리하는 방법.

Google은 Google Wave에서 연구 및 엔지니어링 세부 사항을 발표했습니다 (프로젝트 포기 후 추측합니다). 이 링크는 도움이 될 수도 있습니다. http://www.waveprotocol.org/whitepapers/

+1

나는 Socket.IO에서 통신이 쉽다고 말했고, 그의 전체 응용 프로그램을 쉽게 만들 수는 없습니다. :-D 의심 할 여지없이, 그것은 꽤 프로젝트입니다. – Brad

1

웹 소켓이이 방법입니다. 그러나 PHP로 구현하기가 어렵고 아직 많은 브라우저에서 지원되지 않습니다. PHP로 AJAX 요청을 오랫동안 폴링 할 수는 있지만 리소스 낭비 일 수 있습니다.

이것은 사용자가 원하는 것이 아니지만 서버 측 기술을 변경하는 것이 좋습니다. Node.jsSocket.IO과 함께 사용하면 쉽게 웹 소켓을 사용할 수 있습니다 (또는 지원하지 않는 브라우저에서도 사용할 수 있음). 이렇게하면 데이터를 사용자에게 푸시하는 가장 빠른 방법을 제공합니다.