[]
js-collaboration-presence는 js-collaboration을 기반으로 한 플러그인으로, 실시간 동시 작업을 위한 사용자 프레즌스 상태 관리 및 공유 기능을 제공합니다. 이 플러그인은 클라이언트 측(js-collaboration-presence-client)과 서버 측(js-collaboration-presence)으로 나뉩니다.
클라이언트 측 (Presence): 로컬 사용자의 상태를 수집하여 서버로 전송하고, 다른 사용자들의 상태를 수신하는 역할을 합니다.
서버 측 (presenceFeature): 모든 클라이언트의 상태를 브로드캐스트하고 조정하여, 동시 작업 룸 내에서 상태 데이터의 일관성을 보장하는 역할을 합니다.
사용자 활동 상태를 실시간으로 표시해야 하는 다음과 같은 시나리오에 적합합니다.
텍스트 문서에서 동시 작업자의 커서 위치 표시
스프레드시트에서 선택된 영역 표시
실시간 사용자 상태 공유
기능 설명
js-collaboration-presence는 문서 내에서 클라이언트의 실시간 위치 정보를 관리하고 공유할 수 있습니다. 이 정보에는 사용자의 커서 위치, 선택 영역 등이 포함되며, 다른 사용자들이 문서의 현재 동시 작업 상태를 실시간으로 파악할 수 있도록 합니다.
적용 시나리오
다중 사용자 동시 작업 문서 편집 환경에서, 다른 사용자가 편집 중인 위치를 명확히 확인하여 중복 편집이나 충돌을 방지할 수 있습니다.
스프레드시트 동시 작업 환경에서, 다른 사용자가 작업 중인 셀이나 영역을 실시간으로 확인하여 동시 작업을 보다 원활하게 할 수 있습니다.
사용자 이벤트 감지 및 알림

기능 설명
js-collaboration-presence-client는 사용자 상태 변경을 구독하고 감지할 수 있도록 하여, 사용자의 프레즌스 상태가 변경될 때 특정 동작을 수행할 수 있게 합니다. 이러한 이벤트에는 사용자의 참여, 퇴장, 상태 업데이트(위치 업데이트, 선택 변경 등)가 포함됩니다.
적용 시나리오
새로운 사용자가 동시 작업 공간에 참여하면, 인터페이스를 자동으로 업데이트하여 해당 사용자의 프레즌스 상태를 표시할 수 있습니다.
사용자가 프레즌스 상태를 업데이트하면(예: 커서 위치 변경), 모든 사용자가 동일한 정보를 볼 수 있도록 인터페이스를 실시간으로 업데이트할 수 있습니다.
다중 사용자 동시 작업 지원

기능 설명:
js-collaboration-presence는 js-collaboration 및 js-collaboration-ot와 원활하게 통합되어 완전한 동시 작업 플랫폼을 구축합니다. js-collaboration이 제공하는 양방향 연결과 js-collaboration-ot의 데이터 동기화 및 충돌 해결 기능을 통해, js-collaboration-presence는 실시간 동시 작업 환경에서 사용자 프레즌스 상태를 관리할 수 있습니다.
적용 시나리오
완전한 동시 작업 플랫폼에서 js-collaboration-presence는 사용자 프레즌스 상태 관리를 담당하고, js-collaboration과 js-collaboration-ot는 데이터 동기화와 일관성을 처리하여, 함께 매끄러운 동시 작업 경험을 제공합니다.
js-collaboration-presence는 데이터 영속성을 지원하지 않습니다. 프레즌스 데이터는 서버 메모리에만 유지되며, 각 사용자의 최신 상태만 저장됩니다.
데이터 손실: 서버가 재시작되거나 클라이언트 연결이 끊어질 경우, 저장된 모든 프레즌스 상태(사용자 위치 및 선택 영역 포함)가 손실됩니다.
영구 저장 미지원: 프레즌스는 사용자 상태를 디스크나 데이터베이스에 저장하는 기능을 제공하지 않으므로, 영구적인 사용자 상태가 필요한 시나리오에는 적합하지 않습니다.
주기적 백업: 프레즌스는 기본적으로 영속성을 지원하지 않지만, 메모리에 저장된 상태 정보를 외부 저장소로 주기적으로 백업하는 방식을 고려할 수 있습니다.
커스텀 영속성 구현: 개발자는 사용자 상태를 데이터베이스에 저장하고, 서버 시작 시 이를 복원하는 커스텀 영속성 로직을 구현할 수 있습니다.
Presence를 사용하여 동시 작업 리치 텍스트 에디터를 구축하는 단계별 튜토리얼을 따라가 보세요.
튜토리얼: 실시간 동시 작업 텍스트 편집기에 Presence 기능 추가
핵심 개념과 API를 익혀 보세요.
각 모듈에서는 코드 예제를 통해 실제 사용 방법을 보여줍니다.