Pergunta

Estou construindo uma aplicação web que tem um feed em tempo real (semelhante à newsfeed do Facebook) que eu quero atualização através de um mecanismo de longo polling. Eu entendo que com Python, minhas escolhas são praticamente a qualquer uso Stackless (edifício com seu exemplo wsgi Comet) ou Cometd + torcida. Infelizmente não há muito pouca documentação sobre estas opções e eu não posso encontrar boas informações on-line sobre os usuários escala de produção de cometa em Python.

Alguém já implementou com sucesso cometa em Python em um sistema de produção? Como você vai fazer sobre isso e onde eu posso encontrar recursos para implementar a minha própria?

Foi útil?

Solução

Eu recomendo que você deve usar StreamHub Comet Servidor - seu usado por um grande número de pessoas - uso pessoalmente I -lo com um par de sites Django eu corro. Você vai precisar de escrever um pouquinho de Java para lidar com o streaming - Eu fiz isso usando Jython . O código de front-end é algum simples real Javascript a la:

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

A documentação é muito bom - I teve problemas semelhantes como você tentar começar com os documentos esparsos de Cometd et al. Para começar, eu tinha lido Começando com o Comet e StreamHub , baixar e ver como alguns dos exemplos de trabalho e fazer referência a documentação de API se você precisar:

Outras dicas

orbitou parece como uma boa solução. Já não tentou fazê-lo embora.


Atualização :. Coisas mudaram nos últimos 2,5 anos

Agora temos websockets em todos os principais navegadores, exceto IE (naturalmente) e um par de muito boas abstrações sobre ele, que fornecem muitos métodos de emular a comunicação em tempo real.

Aqui está um exemplo full-featured de combinar Django, orbitou e torceu para criar um tempo real aplicativo (Comet): http://github.com/clemesha/hotdot utilizando Python.

Eu fiz toneladas de APIs usando torcido para coisas assim, a maioria dos quais estão disponíveis em meu github conta.

A maioria é do lado do cliente, mas slosh é um servidor que escrevi para fazer um pubsub realtime barato tipo de coisa. Ele pode ser expandido tanto horizontalmente para leituras por permitindo a replicação de corrente simples. Gravações são um pouco diferente quando você furar a HTTP simples, mas eu empurrei uma quantidade razoável por ele para uma demonstração.

Caso contrário, você tem full-on BOSH que a maioria dos servidores XMPP apoiar e irá permitir que você para desacoplar a distribuição de mensagens a partir da interface web.

Eu não fiz isso, mas esse cara tem e escreve um bom artigo sobre isso, com exemplos e ponteiros Django (o que eu não tenho verificado) com outras estruturas.

as soluções orbitou e Redis são agradáveis, mas não deixa de ser relevante quando você tem algo como o PubSubHubbub que o Google lançou. Isto torna muito fácil de ser a editora ou o assinante a um determinado feed. http://code.google.com/p/pubsubhubbub/

Aqui está um exemplo que faz longo polling com GEvent e Django .

greenlet -. Funcionalidade comutação pilha de Stackless empacotado como uma extensão CPython

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top