Question

J'ai besoin d’aide pour comprendre l’avantage de l’utilisation d’un framework asynchrone. Supposons que je veuille développer une application web de chat simple. Pourquoi ne puis-je pas écrire du code python dans le framework Django qui effectue de longues interrogations sans envoyer de réponse au serveur tant que personne n’a pas saisi un nouveau msg? Qu'est-ce que Twisted fournit qui lui donne un avantage pour les applications en temps réel comme l'application de chat?

Désolé, je suis évidemment un peu confus quant à la nécessité d'un framework asynchrone.

Était-ce utile?

La solution

Les serveurs asynchrones prennent en charge un nombre beaucoup plus important de connexions client simultanées. Des serveurs plus conventionnels se heurtent à des limites en termes de threads et de processus lors de la gestion d'un grand nombre de clients simultanés, en particulier ceux ayant des connexions de longue durée. Les serveurs asynchrones peuvent également offrir de meilleures performances car ils évitent les frais généraux, par exemple. changement de contexte de thread.

En plus du framework Twisted , il existe également des blocs de construction de serveurs asynchrones dans la bibliothèque standard de Python: précédemment asyncore et asynchat , mais maintenant aussi asyncio .

Autres conseils

Tout d’abord, Django est un cadre pour l’écriture d’applications Web. Il fournit donc des modèles ORM, des modèles html, un serveur http, etc., qui est tordu. Vous pouvez utiliser twisted pour écrire le serveur http sur lequel Django est exécuté. Si vous utilisez Django, vous êtes limité au modèle http. Avec twisted, il peut communiquer avec n'importe quel protocole, y compris les protocoles push. Ainsi, pour votre exemple de discussion en ligne, vous obtenez un serveur plus évolutif, car il peut envoyer des commentaires aux personnes qui se sont connectées à VS avec django à tous les clients qui doivent interroger plusieurs fois.

édité pour refléter les commentaires de: sos-skyl

Le plus gros avantage pour moi est que Twisted me donne une application qui a un état et peut communiquer avec de nombreux clients différents en utilisant de nombreux protocoles.

Pour moi, mon serveur Twisted communique avec un certain nombre de capteurs installés dans des maisons et des entreprises surveillant la consommation électrique. Il stocke les données et conserve les données récentes et l'état dans des classes handy-dandy python en mémoire. Les demandes via xmlrpc de django obtiennent cet état et peuvent présenter des données récentes à l'utilisateur. Mon site Gridspy étant encore en développement, le site actuel de votre.gridspy.co.nz est un peu pré-alpha.

La meilleure partie est que vous avez étonnamment besoin de peu de code pour créer un serveur efficace. Une quantité incroyable de travail est faite pour vous.

Dans twisted, vous pouvez implémenter vos propres protocoles. Django ne peut certainement pas faire cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top