2009-05-09 1 views
2

facebook/gmailチャットに似た何かを実装しようとしています。私は彼らの技術として彗星&ジャバーを使用していることを知っています。しかし、いくつかのことについて混乱しています。高度なチャットweb-app

  1. 本当にジャバーが必要ですか?代わりに、from、to、message、sent、およびrecdで単純なmysqlテーブルを使用できますか? mysqlを使用する際に非効率的なことはありますか?パフォーマンスの低下はありますか?

  2. 通常のWebサーバーを使用してコメットを実装できますか?特別なサーバーが必要ですか? AFAIK、apache + phpはあまりにも多くのオープンな接続を処理できませんか?単純なポーリングを使用する必要がありますが、それは私のシステムに悪影響を及ぼしますか?普通のウェブホストで何をすぐに使うことができますか? (私がチャットアプリを販売しているので、ほとんどの人にはうまくいくはずです。)

  3. 彗星を実装する最も良い方法はどれですか?無限のiframeは良いアイデアですか?しばらくすると、PHPのタイムアウトはありませんか?それはクロスブラウザのソリューションになるのだろうか、醜いハッキングを書く必要があるのだろうか?それはサーバーの負荷につながりますか?永遠の接続のためにGmailとFacebookは何を使用しますか?

答えて

3

偉大な質問ですが、うまくいけば、これは週末にスタックで失われることはありません。あなたがフラッシュkirupaを使用したい場合は、PHPとソケットを使用する方法についての良いチュートリアルを持っています。限り、彗星は行く、私はあなたがサーバー実装のいくつかの並べ替えを持っていると信じています。それは私の脆弱な知識が今どこで終わるところです。

単純なポーリングの例(jquery + asp。ネット)もっとたくさん http://trappedinhoth.blogspot.com/2009/04/ajax-jquery-chat-demo.html

Kirupaのチュートリアル(PHP5ソケット+フラッシュ8) http://www.kirupa.com/developer/flash8/php5sockets_flash8.htm

オープンソースのフラッシュチャットクライアント(グーグル) https://blueimp.net/ajax/

彗星情報 http://cometdaily.com/

私は」本当にあなたの質問に答えるわけではありません。ちょうどあなたにさらなるリソースを指しています。私は他の人が答えるものについて非常に興味があります。

1

Jabberは、MySQLが確かに(永続的なストア)バックエンドである(ママ)ミドルウェアとして安全に概念化できると思います。それはリンゴとオレンジです

メガスケールのweb2.0アプリケーションは、RDMBSのACID保証とスケーリングの特性のために発生する制限を考慮すると、リアルタイムメッセージングのためにRDBMSに依存することはできません。 (SQLテーブルをすぐに分割して、サーバを追加して、問題の1つだけを理解してください)

最も重要な考慮事項は、システム内のメッセージの耐久性です。彼らは永遠に持続されるのか、あるいは与えられた時間窓の間だけ持続されるのでしょうか?チャットアプリケーションであることを考えると、おそらくそれは後者です。なぜRDBMSの代わりにメモリベースのストアを使用しないのですか?

なぜJabberを使用する必要がありますか?さて、これは一種の標準なので、この時点では問題ではないとしても、将来的に相互運用性の可能性を開くことになります。

さらに重要なのは、長い間(インターネット犬の年齢で)深刻な発展を経ていたシステムなので、それが(現在のように)と仮定して確かに公正であり、何よりも成熟し続ける設計、実装、デバッグ、生産を社内で行うことができます。

彗星については完全に無知なので、コメントはありません!

2

本当にジャバーが必要ですか?私は代わりに から、 、メッセージ、送信されたとの簡単なmysqlテーブルを使用することができますか? mysqlを使用する際の非効率性がありますか? はパフォーマンス損失ですか?

はい、mysqlではなくjabberを使用する必要があります。 StonebrakerらがRDBMSを使うのがなぜ悪いのかについての詳細については、[建築時代の終わり(それは完全なリライトのための時間)] [1]を読むことができます。

通常の ウェブサーバーを使用してコメットを実装できますか? 特別なサーバーが必要ですか? ...シンプルな ポーリングを使用する必要があります、それは私のシステムに悪い 効果がありますか?普通のウェブホストですぐに使用できるのは何ですか? 永遠に接続するためにgmailとFacebookは何を使用しますか?

彗星は少し曖昧な言葉ですが、心配する必要はありません。特別なサーバーは必要ありません。ポーリングは使用しないでください。あなたは[BOSH] [2]を使うことができます。これはFacebook(と私はGmailと思われる)が使うものです。

クライアント側では[JSJaC] [3](または[my fork on Github] [4])を使用し、サーバー側では[ejabberd] [5]を使用します。両方とも[BOSH] [6](および[XMPP over BOSH] [7])をサポートしているため、XMPPサーバーへのHTTP接続を直接行い、ポーリングを回避し、これらのすべてのための

リンクhttp://delicious.com/petef/stackoverflow-843889

+0

気の毒でブックマークしている、これらのリンクは、あなたが更新してください可能性があり、今おいしいでは使用できません –