2009-10-03 7 views
23

Je vais implémenter Comet en Python (même si j'entends de bonnes choses sur erlycomet je ne suis pas ravi de supporter un serveur web basé sur Erlang en plus de tout le reste dans notre back-end). J'ai trouvé plusieurs possibilités:La meilleure recommandation pour Comet in Python?

(il y a aussi d'autres choix que l'interface avec les serveurs Java, mais Cela ne m'intéresse pas)

Quelqu'un peut-il faire une recommandation parmi ces implémentations, en considérant le rendement, la communauté et la facilité de mise en œuvre?

+1

Vous pouvez également être intéressé dans les réponses à cette question, qui a d'autres alternatives: http://stackoverflow.com/questions/960969/python-comet-server –

+0

Merci! StreamHub ressemble à Java? J'ai ajouté orbite à la liste, cependant. –

+1

Voici un exemple complet de l'application Comet (en utilisant Django + Orbited + Twisted) http://github.com/clemesha/hotdot – clemesha

Répondre

8

J'utilise personnellement Orbited, à la fois parce que j'utilise déjà Twisted et parce qu'il semble mature. Twisted a une longue histoire avec de nombreux utilisateurs, surtout par rapport à Diesel et Tornado. Orbited est en effet construit sur Twisted.

Il existe une bonne entrée de blog couvrant un end-to-end orbit solution here. Il envoie des données d'un script python à un serveur STOMP (MorbidQ) à Orbited to Javascript - rendant ces données sous forme de graphique. Tornado semble assez nouveau sur la scène, je ne pouvais pas trouver la comète tordue et je n'avais pas entendu parler de diesel. J'aime particulièrement la façon dont Orbited peut transmettre n'importe quel type de TCP/IP, mais il est facile de connecter des clients javascript avec un message qui transmet le backend STOMP.

5

Je recommanderais Orbited si vous cherchez à écrire une application Comet. Ce qui rend Comet plus complexe à implémenter (que faire une application Ajax, par exemple), c'est que vous avez besoin du client (un client Comet javascript) et du serveur (un serveur web asynchrone comme Twisted) qui fonctionnent en même temps. est ce que vous obtenez avec Orbited - à la fois le client javascript et le serveur. Les deux Tornado et Diesel fournissent principalement la partie serveur asynchrone, mais manquent le code javascript important du client.

De plus, il y a une assez bonne communauté autour mis en orbite, et plusieurs personnes construisent des applications sympas avec elle, ces pages montre deux de ces applications: http://orbited.org/wiki/Sites

2

J'ai aussi utilise Twisted. Mais au lieu d'Orbited, j'utilise Nevow.Athena. C'est vraiment simple: en savoir plus en lisant le LiveElement tutorial.

+1

Note: le site divmod.org est tombé en panne il y a quelques temps et il est peu probable qu'il revienne en ligne. Je crois que la dernière version du tutoriel LiveElement est ici: http://web.archive.org/web/20101012035741/http://divmod.org/trac/wiki/DivmodNevow/Athena/Tutorials/LiveElement –

+0

De même, _some_ de l'ancienne documentation Divmod est ici: http://divmodsphinx.funsize.net –

2

Êtes-vous installé sur Comet? Pourquoi pas WebSockets? Si ce dernier est également une option, je voudrais faire référence https://github.com/tavendo/AutobahnPython qui implémente WebSockets dans Twisted (la documentation est disponible sur http://autobahn.ws/python). Il est conforme aux normes, a une API de base basée sur les messages et une API avancée pour le traitement basé sur les images/en streaming et bien d'autres choses encore.

+0

WebSockets nécessite Flash pour IE <9 – Lorenzo

+0

oui. aussi IE9 n'a pas WS. Microsoft a quelques bêta WS, mais seulement pour Silverlight, qui peut être accessible à partir de JS - à nouveau comme la solution de contournement Flash. Il n'y a pas d'annonces officielles concernant le support de WS par MS - ils jouent à des jeux sur cette norme à venir, ainsi que sur WebGL. À vous de voir ce qu'il faut penser à cela;) – oberstet

+0

IE10 est livré avec un support pour les messages binaires WebSockets: http://www.tavendo.de/autobahn/testsuite.html – oberstet

1

Ma réponse à this question fournit un exemple de poussée serveur à l'aide de la bibliothèque autobahn qui à mon humble avis est jusqu'à présent le plus convivial cadre WebSocket alimenté par Twisted. Une implémentation JS est également disponible ainsi que Android.

Comet est entièrement remplacé par WebSocket et vous devriez envisager d'utiliser celui-ci à moins que vous envisagez de soutenir IE8 et plus

Questions connexes