2012-12-10 1 views
7

J'ai un backend django mis en place pour les utilisateurs-logins et la gestion des utilisateurs, avec tout mon ensemble de modèles qui sont utilisés par les visiteurs du site pour afficher les fichiers html. Cependant, j'essaie d'ajouter des fonctionnalités en temps réel à mon site et j'ai trouvé une bibliothèque parfaite dans Node.Js qui permet à deux utilisateurs de taper une zone de texte et d'afficher le texte sur leurs deux écrans. Est-il possible de fusionner les deux backends?Est-il possible d'utiliser Django et Node.Js?

Répondre

9

Il est absolument possible (et parfois extrêmement utile) d'exécuter plusieurs back-ends à des fins différentes. Cependant, il ouvre quelques boîtes de vers, selon le type de rigueur que votre système devrait avoir, qui est dans votre équipe, etc:

  • État. Vous voulez que l'état de la session soit partagé entre différents serveurs d'applications. La manière la plus simple de le faire est de stocker l'état de la session externe de manière agnostique. Je suggérerais des objets JSON dans un magasin de clé/valeur et vous bénéficierez probablement du schéma JSON.
  • Domaines/routage. Vous aurez besoin de votre cookie de connexion pour être disponible sur les deux serveurs d'applications, ce qui signifie soit un seul domaine routé par Apache/Nginx, soit des sous-domaines distincts routés via DNS. Je suggère des sous-domaines distincts pour la raison suivante
  • Websockets. Je suis peut-être obsolète, mais à ma connaissance, ni Apache ni Nginx ne prennent en charge les connexions Web, ce qui signifie que si vous voulez utiliser cela, vous perdrez la flexibilité d'utiliser un serveur http comme proxy d'application. sous-domaine.
  • Exigences non spécifiées. Des choses telles que la surveillance, la journalisation, la notification d'erreur, la construction de systèmes, les tests, l'intégration/le déploiement continus, la documentation, etc. doivent être étendues pour prendre en charge un nouveau type de composant
  • Compétences. Vous aurez à payer dans le temps ou l'argent pour les ensembles de compétences nécessaires pour gérer une architecture d'application plus complexe

Donc, mon conseil serait de penser très soigneusement si vous en avez besoin. Il peut y avoir beaucoup de temps et de réflexion.

Mise à jour: Il existe actuellement des entreprises qui se spécialisent dans l'ajout de sites en temps réel à des sites existants. Je ne nommerai aucun nom, mais si vous recherchez "en temps réel" sur le marché des plates-formes d'hébergement (par exemple, Heroku), vous les trouverez.

Mise à jour 2: Nginx a maintenant support for Websockets

2

Vous ne pouvez pas les fusionner. Vous pouvez envoyer des messages de Django à Node.Js via un système de file d'attente tel que Reddis.

0

Si vous voulez vraiment utiliser deux backends, vous pouvez utiliser une base de données supportée par les deux backends.

Bien que je ne le recommanderais pas.

0

Essayez Django, Node.js, Socket.io et Reddis.