Question

Je souhaite mettre en œuvre quelque chose de similaire au chat facebook / gmail. Je sais qu'ils utilisent la comète & Amp; Jabber comme leur technologie. Mais je suis confus sur deux choses.

  1. Ai-je vraiment besoin de Jabber? Puis-je utiliser à la place une simple table mysql avec from, to, message, send et recd? Existe-t-il des inefficacités dans l’utilisation de mysql? Existe-t-il une perte de performance?

  2. Est-ce que comet peut être implémenté en utilisant des serveurs web classiques? Dois-je avoir des serveurs spéciaux? Autant que je sache, apache + php ne peut pas gérer trop de connexions ouvertes? Devrais-je utiliser un sondage simple, cela aura-t-il un effet négatif sur mon système? Que puis-je utiliser directement avec des hôtes Web ordinaires? (Parce que si je vends l'application de chat, cela devrait fonctionner pour la plupart des gens.)

  3. Quel est le meilleur moyen (actuellement) d'implémenter comet? Est-ce que l'infini iframe est une bonne idée? Est-ce que php timeout après un certain temps? Sera-ce une solution multi-navigateur ou dois-je écrire des hacks laids? Cela entraînera-t-il une charge du serveur? Qu'est-ce que Gmail et Facebook utilisent pour la connexion pour toujours?

Était-ce utile?

La solution

Excellentes questions, espérons que cela ne se perdra pas dans la pile le week-end. Si vous voulez utiliser Flash Kirupa, vous trouverez un bon tutoriel sur l'utilisation de PHP et des sockets. Pour ce qui est de la comète, je pense qu’il faut une sorte d’implémentation de serveur. C’est à peu près là où se termine ma faible connaissance.

Exemple d'interrogation simple (jquery + asp.net) http://trappedinhoth.blogspot.com/2009/04/ ajax-jquery-chat-demo.html

Le tutoriel de Kirupa (sockets php5 + flash 8) http://www.kirupa.com/developer/flash8/php5sockets_flash8.htm

Client de chat flash open source (Google, beaucoup plus) https://blueimp.net/ajax/

Info sur la comète http://cometdaily.com/

Je ne réponds pas vraiment à votre question, je vous indique simplement davantage de ressources. Je suis très curieux de savoir ce que les autres vont répondre.

Autres conseils

  

Ai-je vraiment besoin de jabber? Puis-je plutôt   utilisez une simple table mysql avec from,   to, message, envoyé et recd? Sont là   des inefficacités dans l'utilisation de mysql? Est   y at-il une perte de performance?

Oui, vous devez utiliser jabber et pas mysql. Vous pouvez lire [La fin d’une ère architecturale (& Le # 8217; Le temps d’une réécriture complète)]] [1] de Stonebraker et al. Pour en savoir plus sur les raisons pour lesquelles l’utilisation d’un SGBDR est un mauvais ajustement.

  

Peut-on implémenter la comète en utilisant   serveurs web? Ai-je besoin d'en avoir   serveurs spéciaux? ... Dois-je utiliser simple   sondage, aura qui ont un effet négatif   effet sur mon système? Que puis-je utiliser   out-of-the-box sur les hôtes Web ordinaires?   Qu'est-ce que Gmail et Facebook utilisent pour la connexion pour toujours?

Comète est un terme un peu nébuleux mais ne vous inquiétez pas. Vous n'avez pas besoin de serveurs spéciaux, vous ne devriez pas utiliser de polling. Vous pouvez utiliser [BOSH] [2] - qui est également ce que Facebook (et je suppose Gmail) utilise.

Utilisez [JSJaC] [3] (ou [my fork sur Github] [4]) du côté client et [ejabberd] [5] du côté du serveur. Les deux prennent en charge [BOSH] [6] (et [XMPP sur BOSH] [7]), ce qui signifie que vous pouvez établir des connexions HTTP directement sur votre serveur XMPP, éviter les interrogations et gérer les charges de trafic élevées.

Les liens vers tous ces éléments sont marqués d'un signet à l'adresse http://delicious.com/petef/stackoverflow-843889.

Je pense que Jabber peut être considéré en toute sécurité comme un middleware (maman), où MySQL est certainement un backend (magasin persistant). Donc, ce sont des pommes et des oranges.

Aucune des applications web 2.0 à méga échelle ne peut s’appuyer sur le SGBDR pour la messagerie en temps réel, compte tenu des limites rencontrées en raison des garanties ACID d’un système RDMBS et de ses caractéristiques de mise à l’échelle. (Pensez à partitionner vos tables SQL à la volée pour ajouter plus de serveurs et avoir une idée de l'un des problèmes impliqués.)

La durabilité des messages dans votre système est le facteur le plus important à prendre en compte. Doivent-ils être persistés pour toujours ou seulement pendant une fenêtre temporelle donnée? Étant donné qu’il s’agit d’une application de discussion en direct, c’est très probablement la dernière. Pourquoi ne pas utiliser un magasin basé sur la mémoire au lieu d’un SGBDR?

Pourquoi devriez-vous utiliser Jabber? Eh bien, c’est une sorte de standard, vous ouvrirez donc les possibilités d’interopérabilité à l’avenir, même si cela n’est pas un problème pour le moment.

Plus important encore, il s’agit d’un système qui a fait l’objet d’un développement important depuis longtemps (au cours des années Internet), il est donc tout à fait juste de supposer qu’il est (à présent) et continuera à être plus mature que tout ce que vous voudrez. parviennent à concevoir, mettre en œuvre, déboguer et préparer la production en interne.

Entièrement désemparé à propos de la comète, alors laissez un commentaire!

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