2009-11-10 2 views
1

웹 인터페이스에서 실시간 협업을 뒷받침하는 기술과 모범 사례가 궁금합니다.웹에서 실시간 협업 인터페이스를 사용합니다.

예를 들어 물론 Google Wave입니다. 또 다른 PivotalTracker.com입니다.

저는 특히 사람들이하고있는 모든 작업 (프레임 워크, 플러그인 등)에 관심이 있습니다. Ruby on Rails 여기에 있습니다.

나는 어떤 레벨에서 자바 스크립트를 사용해야한다고 생각하지만, 이것을 추상화 할 방법이 필요합니다. 아마도 서버가 주기적으로 폴링되어 변경 사항이 있는지 확인하고, 무언가를 편집하는 중일 경우 충돌을 해결하는 방법으로 서버가 돌아와 다른 누군가가 업데이트했다고 말합니다.

감사합니다.

답변

2

웨이브에는 쉽게 결합 할 수있는 좋은 특성을 가진 operational transform이 있습니다. 두 명의 사용자가 있는데, 각각 사용자 인터페이스에서 "무언가"를하고 두 개의 "somethings"는 최종 문서로 결합 될 수 있습니다. 이를 통해 충돌 해결 문제를 건너 뛸 수 있습니다.

앱의 상태를 실시간으로 업데이트하는 좋은 방법은 Comet을 사용하는 것입니다.이 방법은 본질적으로 살아 있고 오랫동안 서서 기다리지 않은 요청을 서버에 보내고 서버가 끝내고 서버에서 무언가가 발생하면 응답합니다. 클라이언트가 주기적으로 폴링하지 않고 클라이언트에 즉시 업데이트를 보낼 수 있습니다.

javascript/r'n'r에서 이것을 추상화하는 방법을 실제로 말할 수는 없지만 많은 기본 기술 세부 정보가 충분히 어렵고 특정 프레임 워크가 지원하지 않는 프레임 워크가 아닙니다.

+0

매우 감사합니다. 그런데 Gmail이 폴링 중이거나 푸시를 사용하는지 알고 있습니까? 호기심이 많았습니다. 혜성에 대해 내가 싫어하는 유일한 점은 브라우저가 페이지를 지속적으로로드하는 것으로 표시한다는 것입니다. 여기 예가 있습니다 : http://stream-hub.com/ 감사합니다! –

+0

둘 다 상황에 따라 다릅니다. Gmail은 xhr을 통한 폴링과 iframeio를 통한 푸시를 지원하는 Closure (클로저 도구 용 Google 검색)를 사용하여 작성됩니다. – Marcin