2013-05-20 6 views
3

Je cherche à étendre une application web en utilisant la nouvelle API en temps réel afin de soutenir la collaboration (javascript). À cette fin, je voudrais également inclure un chat qui sera disponible pour les utilisateurs collaborant sur le même document. Après une recherche approfondie, je ne trouve pas les parties de l'API Drive qui peuvent être utilisées pour cela. En outre, aucun des exemples open-source fournis par google implémentent la fonctionnalité de chat.Collaborateurs discutent avec Google Drive/Realtime API

Existe-t-il des services/codes que je peux utiliser pour interposer le chat dans mon application ou que je devrais l'implémenter?

Comme mentionné précédemment, le chat devrait être disponible pour ceux qui collaborent sur le même document.

ps Je ne ai pas besoin de fonctions spéciales, une simple discussion que celui trouvé dans google docs, etc.

+0

Si votre application est hébergée sur google app engine, vous avez accès à [API de la chaîne] de Google (https://developers.google.com/appengine/docs/python/channel/overview). En ce qui concerne le lecteur api, je pense que vous avez raison - leur mise en œuvre n'existe pas. – rGil

+0

Le côté serveur est actuellement dans Node.js donc ne peut pas fonctionner sur appengine. – Giannis

+1

Puis socket.io est votre option - chat en temps réel. – rGil

Répondre

1

À l'heure actuelle, je ne connais aucune solution prête à l'emploi pour ce problème. Certaines personnes ont mis en place un chat dans un document en temps réel en plaçant simplement les messages de discussion dans le modèle de données en temps réel.

Cela fonctionne très bien tant que vous ne voulez pas utiliser la fonction annuler/rétablir. Si vous utilisez annuler/rétablir, alors les gens finissent par défaire les messages de discussion.

Nous sommes intéressés à ajouter un meilleur support pour cela finalement, mais aucune promesse sur quoi que ce soit à court terme.

+2

J'ai aussi pensé à cette approche peu de temps après avoir posé cette question. N'est-il pas possible d'avoir deux modèles de données en temps réel ouverts sur le même client (celui qui est normalement édité + un pour le chat) – Giannis

+0

Oui, c'est possible. Cela semble être une solution de contournement raisonnable au problème d'annulation. –

+1

Vous pouvez créer une [Action composée non-annulable] (https://developers.google.com/google-apps/realtime/undo#preventing_undo) qui sera ignorée lorsque vous tentez d'annuler. –

1

Vous devrez construire votre propre système de chat, comme Google vient tué le soutien XMPP Chat API (qui tue largement l'utilisation de l'API). La nouvelle API Hangouts ne permet pas d'accéder au chat (bien que certaines méthodes supplémentaires soient utiles: https://developers.google.com/+/hangouts/ pour l'API de développement).

Vous êtes donc livré à vos propres appareils. Ne craignez pas, cependant, d'écrire un système de chat est assez facile. Je suis sur le point de publier un service (pour la plupart gratuit) pour le faire, donc si vous ne voulez pas écrire le code, je peux vous tenir au courant.

Si, toutefois, vous préférez créer le code pour celui-ci, vous voudrez probablement regarder soit dans socket.io ou postal.js. les deux fournissent la même chose: un pub/sous-modèle. De là, vous aurez besoin de mettre en œuvre un choix de:

  • vote Long: pris en charge par tous les navigateurs, mais un peu maladroit
  • Websockets: pas pris en charge par IE8 et au-dessous

Cela servira comme votre transfert de données.

Deux autres options possibles sont des services payants: vous pouvez modifier RabbitMQ pour faire ce que vous voulez faire (mais cela semblera maladroit). Vous pouvez également remplacer le démon Meteord, qui fait ce que vous voulez en mode natif, mais possède une bibliothèque JS obsolète.

Le mot clé de tout ceci est pub/sub, cependant.

+0

J'ai trouvé cette bibliothèque, il semble que ce serait utile si je prends la route websocket: https://code.google.com/p/jquery-graceful-websocket/ – Giannis

+0

@Giannis: cela ne résout que votre débâcle côté client . Vous devrez toujours implémenter à la fois l'interrogation et le serveur WS. Personnellement, j'ai tendance à m'en tenir à une longue interrogation pour cette raison, et je ne reviendrai que très probablement sur les Websockets une fois que IE8 tombera en dessous de 5% d'utilisation. –