Je crée une application de chat avec Socket.IO de Node.JS et il y a quelques choses sur lesquelles j'ai besoin de clarification.Application de chat mobile sur Google App Engine et Socket.IO
J'implémente la messagerie hors ligne dans mon application, ce qui signifie que lorsqu'un utilisateur ouvre l'application, il reçoit tous les messages qu'il a manqués lorsqu'ils étaient en ligne.
Ceci est mon approche:
1) Le client ouvre l'application et est abonnée/rejoint une salle 2) Le client envoie un message à Socket.IO 3) Socket.IO insère le message dans une sorte of database/datastore 4) Lorsque le client tente de récupérer les messages, il est extrait de la base de données/banque de données et enregistré sur le téléphone de l'utilisateur, puis supprimé de la base de données.
Est-ce une approche correcte? Je regardais en ligne et certaines personnes ont suggéré d'utiliser des files d'attente de tâches/messages comme la file d'attente des tâches de Google App Engine, mais je ne suis pas sûr de savoir comment cela fonctionne.
Pourquoi ne pas supprimer les messages de ma base de données? @nadavvadan –
Parce que vous ne sauvegardez pas l'historique de discussion de l'utilisateur. Cela dépend de votre cas d'utilisation, mais j'imagine que vous voudriez enregistrer l'historique du chat dans une base de données, de sorte que l'information puisse être accessible par d'autres périphériques/depuis le même périphérique après la suppression des données par l'utilisateur. Encore une fois, ne convient pas à toutes les applications, donc je suis en train de répondre à ce qui me frappe comme le cas d'utilisation le plus commun. – nadavvadan
Et les files d'attente de messages peuvent remplacer la base de données dans ce contexte. Par exemple puis-je utiliser RabbitMQ au lieu de stocker les messages dans une base de données? –