Je vais démarrer un projet parallèle pour construire une application web "single page". L'application doit être en temps réel et envoyer des mises à jour aux clients au fur et à mesure des changements.
Existe-t-il de bonnes ressources pour les meilleures pratiques par rapport à l'architecture de ces types d'applications? La meilleure ressource que j'ai trouvée jusqu'à présent est l'article sur l'architecture trello ici: http://blog.fogcreek.com/the-trello-tech-stack/
Pour moi, cette architecture, bien que très sexy, est probablement trop conçue pour mes besoins spécifiques - même si j'ai des exigences similaires. Je me demande si je dois m'embêter avec un sous / pub côté serveur, pourrais-je pas simplement pousser les mises à jour depuis le serveur quand quelque chose se passe (par exemple, lorsque le client envoie une mise à jour au serveur, écrire la mise à jour dans la base de données, puis envoyer une mise à jour aux clients).
Côté technologie, je cherche probablement à développer cela dans Node.JS ou peut-être Ruby, bien que les directives d'architecture devraient dans une certaine mesure s'appliquer à toutes les technologies de serveur sous-jacentes.
la source
J'irais probablement avec un framework javascript MV * pour le front-end. Je suis moi-même en train de créer une application Web d'une seule page et après avoir étudié un certain nombre de solutions, j'ai fini par utiliser Backbone.js. J'ai trouvé que cette solution ne fournissait pas la plupart des fonctionnalités prêtes à l'emploi, elle m'a fourni une base de base pour commencer et est beaucoup plus flexible que les autres solutions que j'ai examinées (ce qui était important pour moi).
Les autres solutions populaires sont Ember.js et Knockout.js qui fournissent plus de fonctionnalités prêtes à l'emploi, mais vous devez suivre leurs conventions pour utiliser la fonctionnalité thT (qui peut ou non fonctionner pour vous).
la source
Ceci est une IMO sans encombre. AngularJS pour le frontal car c'est génial. NodeJS / express / SocketIO pour un backend dynamique et sexy avec bonté pub / sub et un minimum d'agitation. Et en prime, vous pouvez utiliser une seule langue pour le recto et le verso!
Découvrez ma mise en œuvre de même https://github.com/hackify/hackify-server pour un exemple
Une mise en garde, certaines personnes recommandent une alternative NodeJS à socketio appelée sockjs mais je n'ai pas vérifié cela, donc je ne peux pas le recommander
la source
On dirait que ce que vous regardez est Apache 2.2 avec serveur d'applications PHP ou Tomcat avec un servlet simple qui gère les demandes. C'est l'équivalent du marteau du marteau et des clous. Rien de compliqué mais ça fait le boulot. Si vous avez besoin d'étendre les fonctionnalités, vous pouvez toujours le faire puisque Tomcat peut prendre en charge jsp et jsf si vous en avez besoin.
Pour ce qui concerne le front-end, je serais à l'aise d'utiliser simplement jQuery ( $ .post , $ .load , $ .ajax ) car il est assez pratique de doubler comme moyen d'ajouter des fonctionnalités à votre page en combinaison avec jQuery UI
la source
Si vous voulez des mises à jour du client en temps réel, vous devrez soit implémenter les appels "AJAX" à blocage long, soit utiliser de préférence les Websockets modernes. Ceux-ci vous permettent de pousser les mises à jour vers un client connecté qui seront gérées par un peu de javascript.
Je comprends que l'état actuel de la technique (ou la dernière mode) est AngularJS by Google. Il est en partie conçu pour faciliter l'écriture des SPA.
la source
Si vous voulez quelque chose de proche de la pile moyenne (node.js, mongo ...) pour construire une application d'une seule page qui doit être réactive, je choisirais un météore . Surtout si vous construisez un prototype et recommencez à zéro.
Les rails avec une interface angulaire seraient un choix correct à mon humble avis, mais vous aurez plus de mal à "envoyer des mises à jour aux clients au fur et à mesure des changements", car vous auriez besoin d'installer des gemmes spécifiques, de regrouper des bibliothèques à longue interrogation ou sockjs. .
la source