Pergunta

Eu estou olhando para implementar algo semelhante ao facebook / gmail chat. Eu sei que eles usam cometa e jabber como sua tecnologia. Mas estou confuso sobre um par de coisas.

  1. Eu realmente preciso Jabber? Posso passar a usar uma tabela mysql simples com de, para, mensagem, enviada e recD? Existem quaisquer ineficiências na utilização de mysql? Existe alguma perda de desempenho?

  2. Can cometa ser implementados usando web-servidores regulares? Eu preciso ter alguns servidores especiais? AFAIK, apache + php não pode lidar com muitas conexões abertas? Devo usar simples de votação, isso terá um efeito adverso sobre o meu sistema? O que eu posso usar out-of-the-box em webhosts comuns? (Porque se eu vender o aplicativo de bate-papo, ele deve funcionar para a maioria das pessoas.)

  3. Qual é a melhor maneira (atualmente) para implementar cometa? É o iframe infinita uma boa idéia? tempo limite php Wont depois de um tempo? Será que vai ser uma solução cross browser ou eu tenho que escrever alguns hacks feios? Será que levam a carga do servidor? O que fazer gmail e facebook uso para a conexão para sempre?

Foi útil?

Solução

Grandes questões, espero que isso não vai se perder na pilha no fim de semana. Se você quiser usar o flash kirupa tem um bom tutorial sobre como usar PHP e soquetes. Tanto quanto cometa vai, eu acredito que você tem que ter algum tipo de implementação do servidor. Isso é sobre onde meus fins de conhecimento fracas no momento.

Simples exemplo de sondagem (jQuery + asp.net) http://trappedinhoth.blogspot.com/2009/04/ ajax-jquery-chat-demo.html

tutorial de Kirupa (soquetes PHP5 + Flash 8) http://www.kirupa.com/developer/flash8/php5sockets_flash8.htm

cliente flash chat Open source (google, muito mais) https://blueimp.net/ajax/

info Comet http://cometdaily.com/

Eu realmente não estou respondendo a sua pergunta, apenas apontando-lhe a mais recursos. Estou muito curioso para saber o que os outros vão responder.

Outras dicas

Eu realmente preciso Jabber? Posso vez utilizar uma tabela simples mysql com a partir, a, mensagem, enviada e recD? Existem quaisquer ineficiências na utilização de mysql? É Há alguma perda de desempenho?

Sim, você precisa usar Jabber e não mysql. Você pode ler [The End of an Era Architectural (É hora de uma reescrita completa)] [1] por Stonebraker et al para os detalhes de por que usar um RDBMS é uma má forma.

Can cometa ser implementado usando regulares servidores web? Preciso ter algum servidores especiais? ... Devo usar simples polling, isso terá um efeito adverso efeito no meu sistema? O que eu posso usar out-of-the-box em webhosts comuns? O que fazer gmail e uso facebook para a conexão para sempre?

Comet é um pouco de um termo nebuloso, mas não se preocupar. Você não precisa de servidores especiais, você não deve usar polling. Você pode usar [BOSH] [2] - que também é o Facebook (e eu suspeito Gmail) usos

.

Use [JSJaC] [3] (ou [o garfo no Github] [4]) no lado do cliente e [ejabberd] [5] no lado do servidor. Ambos apoio [BOSH] [6] (e [XMPP sobre BOSH] [7]) ou seja, você pode fazer conexões HTTP para o servidor XMPP diretamente, polling evitar e lidar com cargas de alto tráfego.

Ligações para todos estes são marcada em http://delicious.com/petef/stackoverflow-843889

Eu acho que Jabber pode ser conceituada com segurança como um (a mãe) middleware, onde, como MySQL é certamente (armazenamento persistente) backend. Então, isso é maçãs e laranjas.

Nenhum da escala de mega aplicações Web 2.0 pode confiar em RDBMS para tempo real de mensagens dado os limites que é encontrado devido às garantias ácido de um RDMBS, e suas características de escala. (Pense em particionar seus tabelas SQL na mosca para adicionar mais servidores para ter uma noção de apenas uma das questões envolvidas.)

A consideração mais importante é a durabilidade das mensagens em seu sistema. Estão a ser mantido para sempre ou somente durante uma janela de tempo dado. Dado que a sua aplicação um bate-papo, mais do que provavelmente é o último. Por que não usar uma loja baseada memória em vez de um RDBMS?

Por que você deve usar Jabber? Bem, é uma espécie de padrão, então você vai abrir as possibilidades de interoperabilidade no futuro, mesmo que isso não é um problema neste momento.

Mais importante, ele é um sistema que tem estado sob desenvolvimento sério por um longo tempo (em anos do cão internet), pelo que a sua certamente justo supor que ele é (a partir de agora) e continuará a ser mais maduro do que o que você conseguem projetar, implementar, depurar e tornar a produção pronta em casa.

Totalmente ignorante sobre cometa, assim, não comentário!

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