2013-08-16 5 views
1

Je souhaite implémenter une expérience utilisateur similaire à Google Docs en utilisant l'API en temps réel. Je me demande quelle est la meilleure approche pour suivre les curseurs/sélections de tous les collaborateurs.Google Drive SDK Realtime/Multiple Cursors (IndexReference?)

Il semble que IndexReference soit le chemin à parcourir, mais comment puis-je effectuer le suivi si un collaborateur ajoute un IndexReference à une chaîne?

Dans le sandbox API en temps réel, seuls les mouvements du curseur à partir du curseur local sont suivis. Les IndexReferences sont-ils diffusés à tous les collaborateurs ou sont-ils exclusivement destinés à un usage local?

Ou est l'approche préférée pour créer une carte collaborative contenant toutes les sélections? Existe-t-il un moyen d'attacher certains champs à un collaborateur afin qu'ils soient nettoyés lorsqu'un collaborateur part?

Répondre

0

Les IndexReferences sont des objets de modèle de données comme tous les autres. Vous pouvez leur ajouter des écouteurs pour être informés des changements.

Vous souhaitez probablement disposer d'une carte à partir des informations de sessionId -> cursor. La manière dont les informations du curseur sont représentées dépend de ce que vous voulez suivre, mais il peut s'agir d'une référence d'index sur une chaîne.

Vous pouvez écouter des événements Leave collaborator pour savoir quand supprimer le curseur d'un collaborateur.

+0

Merci pour votre réponse! En ce qui concerne les IndexReferences: Si l'utilisateur A crée un IndexReference, l'utilisateur B pourra-t-il voir la référence? Il n'y a pas de méthode pour obtenir les références enregistrées. – dflorey

+0

Je pense que IndexReferences sont seulement locales. Mon plan (que je n'ai pas encore implémenté) est que chaque client maintienne sa propre entrée dans la carte d'informations du curseur sessionId -> comme suggéré par Cheryl. Le client mettra à jour ses informations de curseur sur la saisie de l'utilisateur et sur les événements d'un IndexReference enregistré à l'emplacement du curseur. Ensuite, les clients écoutent également les modifications apportées aux autres entrées sessionId et affichent les curseurs du client distant. –

+0

Le seul problème que je prévois est un délai entre documenter les changements et les changements de curseur à distance car la chaîne ressemble: changement doc local -> client distant reçoit le changement doc et changement de référence d'index -> mises à jour du client à distance curseur carte -> changement de carte de curseur reçu localement -> curseur rendu. ce délai peut être résolu par dead-compte avec un IndexReference enregistré pour les emplacements de curseur client distant dans les cas où cela a du sens. –

Questions connexes