Vou iniciar um projeto paralelo para criar um aplicativo Web de "única página". O aplicativo precisa ser em tempo real, enviando atualizações aos clientes à medida que as mudanças acontecem.
Existem bons recursos para abordagens de práticas recomendadas na arquitetura para esses tipos de aplicativos. O melhor recurso que encontrei até agora é o artigo da arquitetura do trello aqui: http://blog.fogcreek.com/the-trello-tech-stack/
Para mim, essa arquitetura, apesar de muito sexy, provavelmente foi projetada em excesso para minhas necessidades específicas - embora eu tenha requisitos semelhantes. Eu estou querendo saber se eu preciso me preocupar com um sub / pub no lado do servidor, eu não poderia simplesmente enviar atualizações do servidor quando algo acontecer (por exemplo, quando o cliente envia uma atualização para o servidor, escreve a atualização no db, e, em seguida, envie uma atualização para os clientes).
Em termos de tecnologia, provavelmente estou procurando criar isso no Node.JS ou talvez Ruby, embora as diretrizes de arquitetura devam se aplicar, em certa medida, a qualquer tecnologia de servidor subjacente.
fonte
Eu provavelmente iria com uma estrutura MV * javascript para o front end. Eu mesmo estou criando um aplicativo Web de página única e, depois de investigar várias soluções, acabei usando o Backbone.js. Descobri que, embora essa solução não fornecesse o máximo de funcionalidade pronta para uso, ela me forneceu uma base essencial e é muito mais flexível do que outras soluções que eu olhei (o que era importante para mim).
Outras soluções populares são o Ember.js e o Knockout.js, que fornecem mais funcionalidades prontas para uso, no entanto, é necessário seguir as convenções para usar a funcionalidade ThT (que pode ou não funcionar para você).
fonte
Este é um IMO acéfalo. AngularJS para o front end, porque é incrível. NodeJS / express / SocketIO para um back-end dinâmico e sexy com qualidade de pub / sub e um mínimo de barulho. E como bônus, você pode usar um idioma para a frente e para trás!
Confira minha implementação do mesmo https://github.com/hackify/hackify-server para um exemplo
Uma ressalva, algumas pessoas estão recomendando uma alternativa do NodeJS ao socketio chamada sockjs, mas eu não verifiquei isso, então não posso recomendá-lo
fonte
Parece que você está vendo o Apache 2.2 com servidor de aplicativos PHP ou Tomcat com um servlet simples que lida com solicitações. É o equivalente do carpinteiro a martelos e pregos. Nada complicado, mas faz o trabalho. Se você precisar expandir a funcionalidade, poderá fazê-lo, pois o Tomcat pode oferecer suporte a jsp e jsf, se necessário.
No que diz respeito ao front-end, eu me sentiria confortável usando simplesmente o jQuery ( $ .post , $ .load , $ .ajax ), pois é bastante útil a duplicação como forma de adicionar funcionalidade à sua página em combinação com a interface do usuário do jQuery
fonte
Se você quiser atualizações de clientes em tempo real, será necessário implementar as chamadas "AJAX" de bloqueio longo ou, de preferência, usar os websockets modernos. Isso permite que você envie atualizações para um cliente conectado, que será tratado por um pouco de javascript.
Entendo que o estado da arte atual (ou a última moda) é o AngularJS do Google. É parcialmente projetado para facilitar a escrita de SPAs.
fonte
Se você quiser algo próximo à pilha média (node.js, mongo ...) para criar um aplicativo de página única que precise ser reativo, eu escolheria meteoros . Especialmente se você estiver construindo um protótipo e começando do zero.
Rails com um front-end angular seria uma boa opção, mas você terá mais dificuldade em "enviar atualizações para os clientes à medida que as mudanças acontecerem", pois você precisará instalar gemas específicas, juntar algumas bibliotecas de sondagem longa ou sockjs. .
fonte