2010-07-27 4 views
2

J'ai une application Django qui a parfois besoin d'envoyer des données via TCP et je veux que cette connexion soit persistante. La façon dont je voulais le faire était de créer un simple serveur TCP Twisted (je suis celui qui attendra la connexion initiale) et l'appeler d'une manière ou d'une autre depuis une vue Django quand j'en aurais besoin. A quoi devrait ressembler la communication entre Twisted et Django dans ce cas?connexion TCP persistante dans Django

+0

Je ne suis pas tout à fait clair ce que vous demandez. Voulez-vous que la connexion entre Django et votre serveur Twisted soit persistante? Si oui, pourquoi? Performance? –

+0

Oui, la performance. Si ce n'est pas le cas, je supprimerais probablement la connexion TCP en faveur d'une solution AMQP pour django comme Carrot. Dans ce cas, j'ai besoin d'envoyer un très petit message à un serveur distant de temps en temps. Je me demandais aussi si je pouvais le faire directement à partir d'un navigateur utilisant Orbit mais je n'ai aucune idée si cela pourrait fonctionner. – virtuallight

+0

un exemple d'implémentation pour un serveur stomp avec orbited et django est: http://github.com/clemesha/hotdot. Est-ce proche de ce que vous essayez de faire? –

Répondre

3

Utilisez le Twisted wsgi container to run Django. Ce conteneur exécute simplement l'application WSGI dans plusieurs threads Twisted-threadpool, vous pouvez donc simplement appeler n'importe quelle API Twisted via blockingCallFromThread. Il n'y a vraiment pas grand chose à ça!

+0

Bien que je n'aie pas adopté cette approche (une similaire), je pense que cela devrait fonctionner aussi bien. Quoi qu'il en soit, votre réponse m'a conduit à la solution, alors merci! – virtuallight

+0

@virtuallight Quelle solution avez-vous utilisée? – js837

Questions connexes