C'est plus par curiosité et "pour référence future" qu'autre chose, mais comment Comet est-il implémenté côté base de données? Je sais que la plupart des implémentations utilisent des requêtes HTTP de longue durée pour "attendre" jusqu'à ce que les données soient disponibles, mais comment cela se fait-il du côté serveur? Comment le serveur Web sait-il quand de nouvelles données sont disponibles? Est-ce qu'il interroge constamment la base de données?Implémentation de Comet du côté de la base de données
Répondre
Quel DB utilisez-vous? S'il prend en charge les déclencheurs, ce que de nombreux SGBDR font sous une forme ou une autre, alors vous pouvez faire en sorte que le déclencheur déclenche un événement qui indique à la requête HTTP d'envoyer la réponse appropriée. Les déclencheurs suppriment le besoin d'interroger ... l'interrogation n'est généralement pas la meilleure idée.
PostgreSQL semble avoir un très bon support (même PL/Python).
cela dépend beaucoup de l'application. La mise en œuvre la plus probable est une sorte de système de messagerie.
Très probablement, votre code côté serveur sera composé d'un bon nombre de parties:
- quelques serveurs d'application qui hansle les requêtes entrantes,
- un (séparé) serveur comète qui traite de toutes les connexions ouvertes aux clients,
- la base de données, et
- une sorte d'infrastructure de messagerie
dernier sur e, l'infrastructure de messagerie est vraiment la clé. Cela permet aux serveurs d'applications de communiquer avec le serveur de comète. Ainsi, lorsqu'une requête arrive dans le serveur de l'application, un message apparaît dans la file d'attente indiquant au serveur de comète de notifier le (s) client (s) correct (s)
La manière dont la messagerie est implémentée dépend encore beaucoup de l'application. Une implémentation très simple utiliserait simplement une table de base de données appelée messages
et interrogerait cela. Mais en fonction de la pile que vous envisagez d'utiliser, il devrait y avoir plus d'outils sophistiqués disponibles.
Dans Rails j'utilise Juggernaut qui écoute simplement sur un port réseau. Chaque fois qu'il y a des données à envoyer, le serveur d'application Rails ouvre une connexion à ce serveur push de poids lourds et lui indique ce qu'il faut envoyer aux clients.
- 1. Implémentation de COMET clientide
- 2. Exemple d'une implémentation de Comet dans Flex
- 3. Meilleure implémentation JETTY COMET ou implémentation COMET Resin
- 4. Implémentation Round Robin Assignment (base de données)
- 5. Implémentation de la journalisation personnalisée des messages WCF côté client
- 6. Implémentation autocomplète côté serveur
- 7. comet callback-polling et implémentation jetty-cometd
- 8. Implémentation d'un délégué de quota de base de données WebView
- 9. Meilleure façon de synchroniser la base de données client avec la base de données du serveur
- 10. Comet, responseText et utilisation de la mémoire
- 11. Implémentation de l'authentification unique et de la synchronisation des données
- 12. Mise en œuvre de Comet pour ASP.NET?
- 13. Conception de la base de données du moteur de recommandation?
- 14. Implémentation de la file d'attente
- 15. structure du modèle de base de données
- 16. Historique de la base de données pour l'utilisation du client
- 17. Déterminer le chemin du fichier de la base de données
- 18. Structure de la base de données du mur Facebook
- 19. Index de base de données
- 20. Modélisation de base de données ou conception de base de données: Lequel vient en premier?
- 21. Effets de la modification de la validation du champ de la base de données de progression
- 22. JQuery/Javascript: Modification côté client de la sortie de la base de données asp.net pour permettre à tablesorter de fonctionner
- 23. Chargement de la base de données iPhone
- 24. Base de données de la banlieue britannique
- 25. Base de données du serveur SQL "Lost"
- 26. Bibliothèque javascript COMET
- 27. Restauration de la base de données
- 28. Détermination du côté serveur de la visibilité de l'élément HTML
- 29. Implémentation de fonctions de triggers à base de table
- 30. Ajouter du HTML à la base de données wordpress
Vous n'avez pas répondu directement à ma question, mais +1 pour la description (et aussi pour le lien vers Juggernaut, puisque j'utilise Ruby). –