Pergunta

Eu não tenho certeza sobre a melhor pilha para construir um aplicativo de bate-papo.Actualmente estou a pensar em duas opções principais:

  • facebook tornado
    • contras:não use o principal chat protocolo xmpp, mas pubsubhubbub
    • prós:eu realmente gosto de sua simplicidade para o desenvolvimento (webserver + webframework);pubsubhubbub também parece mais simples, como um protocolo de xmpp;e eu sei python
  • xmpp + bosch, punjab, ejabberd
    • contras:não sei erlang;no geral parece um pouco mais para desenvolver
    • prós:utiliza o protocolo xmpp

O bate-papo app será necessário ter o seguinte:

  • Mensagens privadas
  • Público quartos
  • Quartos privados
  • Histórico de bate-papo para quartos (não para sempre, apenas o último n mensagens)
  • html de incorporação
  • url para sala de bate-papo

Ambas as opções parecem escaláveis, de forma que não é realmente a minha preocupação (estamos a pensar em executar o aplicativo no amazon ec2 bem).Eu sei que há um projeto que cria um servidor xmpp usando o tornado, mas ele não está pronto para uso em produção, e o nosso prazo não é tão grande.Basicamente, a minha principal preocupação é a facilidade de desenvolvimento de vs, de alguma forma, lamentando mais tarde usando o pubsubhubbub para desenvolver um aplicativo de bate-papo, mas eu li em algum lugar que PubSubHubbub pode eventualmente substituir o XMPP como RESTO substituído SABÃO - então, o que você acha?

Foi útil?

Solução

Ir para o XMPP.

Fora da caixa, ejabberd tem suporte para todas as suas necessidades.Você não precisa ver qualquer erlang e escrever módulos personalizados para ejabberd.E com Strophejs, XMPP no navegador (que é o que, aparentemente, estão fazendo) é grande.

Para a sua última pergunta sobre o pubsubhubbub substituindo XMPP, não conte com isso.XMPP é mais de 10anos de idade, sólido open source e proprietárias implementações interoperáveis ambos, cliente e servidor, e é elegante, por isso não vai embora.

E você está desenvolvendo um aplicativo de bate-papo que é o que XMPP foi feito.

Outras dicas

O Facebook Tornao não usa pubsubhubbub!

Vá para o XMPP, ele foi projetado para o que você está procurando. Tornado não foi projetado para isso especificamente, mas para pedidos de longa votação em geral.

Não há necessidade de usar o Punjab, o módulo HTTP-Bind ejabbed faz um bom trabalho agora. Além disso, você não precisa aprender Erlang, da mesma maneira que não precisa aprender C ao escrever um WebApp que usa Apache :) Confira coisas como Aristochat. A única coisa com a qual você precisará jogar é a configuração do seu servidor XMPP e salas de bate -papo e, em seguida, JavaScript para o lado do cliente (no navegador).

Se você não precisa da Federação via XMPP, mas deseja prototipar e implantar rapidamente, juntamente com a escalabilidade, dê uma olhada no exemplo da estrutura da web de elevação de um Servidor de bate -papo em uma página de código.

O PubSubHubbub (PUSH) nunca foi destinado a aplicativos de bate -papo em primeiro lugar. Às vezes, é chamado de "IM para a web". Eu sugiro que você passe por este slide: Ruby em tempo real para a Web em tempo real por IGrigorik

A pergunta é realmente o quão em tempo real você deseja obter? Se você deseja velocidade, o XMPP é a melhor opção. (500ms) enquanto o Push depende do seu feed e de como é retransmitido. Lembre -se, com o Push, seu total de 4 saltos de rede antes que o conteúdo chegue ao assinante.

O problema ainda maior é o Push depende do post HTTP. Mesmo se você acabar projetando um aplicativo de bate -papo com base no PUSH e diz em um estágio posterior, deseja disponibilizá -lo para outros dispositivos ou mesmo como um aplicativo de desktop, precisaria retransmitir o mesmo conteúdo usando o XMPP. O outro lugar em que você perderá é que seria muito difícil para os usuários do seu aplicativo de bate -papo fazer o login de qualquer outra IM de sua escolha.

Você pode usar uma API REST com a WebSocket para implementar uma arquitetura de editor/assinante.

Atmosfera e soquetes de arrogância são uma boa estrutura Java que você pode conectar ao seu Jersey REST API e consiga isso.

O blog do criador de Atmospehre, JFarcand, tem um Exemplo de aplicativo de bate -papo construído com essas tecnologias.

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