Tordu(asynch serveur) vs Django(ou n'importe quel autre framework)
J'ai besoin d'aide pour comprendre ce que l'avantage de l'utilisation d'un asynch cadre est. Supposons que je souhaite développer un simple chat web app. Pourquoi ne puis-je pas écrire du code python dans le framework Django qui n'a le temps d'interrogation où je n'ai pas envoyer une réponse du serveur jusqu'à ce que quelqu'un entre dans un nouveau msg. Ce n'Tordu fournir, ce qui lui donne un avantage en temps réel des applications, comme l'application de chat?
Désolé, je suis évidemment peu confus au sujet de la nécessité d'une asynchrones cadre.
OriginalL'auteur fanar | 2009-09-11
Vous devez vous connecter pour publier un commentaire.
Asynchrone serveurs prennent en charge un plus grand nombre de connexions client simultanées. De plus classique des serveurs de venir à l'encontre de fil et les limites des processus lors de l'entretien grand nombre de clients simultanés, en particulier ceux avec une longue durée de vie des connexions. Async serveurs peuvent également fournir de meilleures performances qu'ils évitent les frais généraux de, par exemple, le changement de contexte thread.
Ainsi que la
Twisted
cadre, il y a aussi asynchrone serveur de blocs de construction en Python standard library: auparavantasyncore
etasynchat
, mais maintenant aussiasyncio
.OriginalL'auteur Vinay Sajip
Tout d'abord Django est un framework pour écrire des applications web de sorte qu'il donne l'ORM, de modèles html, il nécessite l'exécution d'un serveur http, etc. Twisted aide à écrire niveau beaucoup plus faible que le code que. Vous pouvez utiliser tordu pour écrire le serveur http Django fonctionne sur. Si vous utilisez Django vous êtes limité à l'adresse http du modèle, avec twisted il pourrait être de communiquer dans n'importe quel protocole vous le souhaitez, y compris pousser des protocoles. Donc, pour votre chat exemple, vous obtenez un serveur qui évolue mieux car il peut pousser des commentaires de personnes qui ont ouvert une session en VS avec django chaque client d'avoir à interroger à plusieurs reprises.
modifié pour tenir compte des commentaires par: sos-skyl
Il n'est pas l'objectif asynchrone, tellement que c'est ce que la pile ressemble. Avec Django, c'est un serveur web, un WSGI mise en œuvre, Django, mon code. Avec Tordus il est Tordu, mon code. À l'aide de twisted on pourrait écrire un serveur web, un serveur XMPP, un serveur IRC. Avec Django, beaucoup de flexibilité, ce qui est disparu, vous êtes lié pour HTTP comme protocole.
OriginalL'auteur stonemetal
Le plus grand avantage pour moi est que Tordu me donne une application qui a de l'état, et peut communiquer avec de nombreux clients à l'aide de nombreux protocoles.
Pour moi, ma Tordu le serveur communique avec un certain nombre de capteurs installés dans les maisons et les entreprises qui surveillent l'utilisation de l'énergie. Il stocke les données et conserve des données récentes et de l'état dans la main-dandy de classes python dans la mémoire. Les demandes via xmlrpc de django obtenir cet état et peut présenter les données à l'utilisateur. Mon Gridspy truc est encore en développement donc le site à votre.gridspy.co.la nouvelle-zélande est un peu pré-alpha.
La meilleure partie est que vous devez étonnamment peu de code pour faire un serveur efficace. Une quantité incroyable de travail est fait pour vous.
OriginalL'auteur Tom Leys
Tordus vous pouvez mettre en place des protocoles de votre propre. Django ne peut certainement pas faire cela.
OriginalL'auteur Skylar Saveland
Vous pouvez utiliser BOUFFÉE au lieu de :). Découvrez
http://aaron.oirt.rutgers.edu/myapp/gfChat/nucularChatRoom
qui utilise un javascript boucle d'interrogation avec json pour vérifier
pour les mises à jour du serveur. Vous pourriez probablement faire quelque chose de similaire
dans Django, mais je ne sais pas comment parce que j'ai donné sur Django.
btw: je suis dans l'espoir de faire cette démo sur le google app engine
en tant que service plus complets quand
ma vie se calme un peu.
OriginalL'auteur Aaron Watters
Si vous souhaitez regarder certaines de source pour l'intégration de Tordu et de Django, un coup d'oeil à Yardbird.
OriginalL'auteur DrBloodmoney