Question

Je construis une application web qui a un flux en temps réel (similaire à Facebook RSS) que je veux mettre à jour via un mécanisme à long sondage. Je comprends que Python, mes choix sont à peu près à utiliser soit Stackless (bâtiment de leur exemple Comet wsgi) ou cometd + Twisted. Malheureusement, il y a très peu de documentation sur ces options et je ne peux pas trouver de bonnes informations en ligne sur les utilisateurs à l'échelle de la production de la comète sur Python.

Quelqu'un at-il comète en œuvre avec succès sur Python dans un système de production? Comment avez-vous à le faire et où je peux trouver des ressources pour mettre en œuvre ma propre?

Était-ce utile?

La solution

Je recommande que vous devez utiliser StreamHub Comet serveur - son utilisé par un grand nombre de personnes - personnellement, je l'utilise avec quelques sites Django je dirige. Vous aurez besoin d'écrire un tout petit peu de Java pour gérer le streaming - Je l'ai fait en utilisant Jython . Le code front-end est un peu Javascript réel simple, à la:

StreamHub hub = new StreamHub();
hub.connect("http://myserver.com/");
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); });

La documentation est assez bon - j'ai eu des problèmes similaires que vous essayez de commencer avec les documents rares de cometd et al. Pour commencer, je lirais Mise en route avec la comète et StreamHub , télécharger et voir comment quelques-uns des exemples de réalisations et la référence de l'API docs si vous devez:

Autres conseils

semble en orbite autour d'une belle solution. N'a pas essayé cependant.


Mise à jour :. Les choses ont changé au cours des dernières années 2,5

Nous avons maintenant websockets dans tous les principaux navigateurs, sauf IE (naturellement) et un couple de très bonnes abstractions dessus, qui offrent de nombreuses méthodes de émulant communication en temps réel.

Voici un exemple complet de combiner Django, mis en orbite, et Twisted pour créer en temps réel (Comet) application:

Je l'ai fait des tonnes d'API à l'aide torsadé pour des trucs comme ça, dont la plupart sont disponibles sur mon github compte.

La plupart sont côté client, mais ballottement est un serveur que j'ai écrit pour faire un temps réel PubSub pas cher genre de chose. Il évolue quelque peu horizontalement pour lit en permettant une réplication simple flux. Rédige sont un peu différent quand vous vous en tenez à HTTP simple, mais j'ai poussé un montant décent à travers elle pour une démonstration.

Dans le cas contraire, vous avez plein sur BOSH dont la plupart des serveurs XMPP support et vous permettra de découpler la distribution des messages du frontend Web.

Je ne l'ai pas fait, mais ce gars-là a et écrit un bon article à ce sujet, avec des exemples de Django et des pointeurs (que je n'ai pas vérifié) à d'autres cadres.

et mis en orbite solutions sont bien redis, mais pas plus pertinent quand vous avez quelque chose comme le PubSubHubbub que Google a publié. Cela rend très facile d'être l'éditeur ou l'abonné à un flux donné. http://code.google.com/p/pubsubhubbub/

Voici un exemple qui fait long vote avec gevent et Django .

Il utilise Greenlet. - fonctionnalité de commutation de pile de Stackless emballé comme une extension CPython

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