1

私は現在、1万人以上のユーザーがオンラインで接続しているチャットシステムの構築について研究しています。ジャバー(XMPP)、WebSocket、ロングポーリング、プッシュなどのテクノロジーとその方法に出くわしました。私の知る限り、ユーザー数を考えると、長いポーリングは機能しない可能性があります。これを達成する方法はたくさんあることを私は知っています。FacebookとGoogleのチャットシステムがXMPPで開発されていることも知っています。

誰かが私を正しい方向に向けてくれたら本当にありがたいです。プロジェクトの規模にもよりますが、これらすべての方法や技術は良いと思います。私は間違いなくパフォーマンスとスケーラビリティが必要です。

4

2 に答える 2

2

私はそのようなチャットアプリケーションのためにNodeJSと一緒にSocket.ioを使用しました。中程度のサーバーで1万人を超える同時ユーザーに拡張され、成長の余地がたくさんありました。

これはあなたの制限に依存します。

  • どのようなハードウェアを使用する予定ですか?
  • どのオペレーティングシステムがサーバーに電力を供給しますか?
  • どのクライアントプラットフォームをターゲットにしていますか?
  • これを適合させるために必要な既存のインフラストラクチャはありますか?
  • 以前に選択したプログラミング言語はありますか?
  • チームメンバーが持っている既存のスキルセットと、必要に応じて新しいプラットフォームと言語を採用するチームの能力。

決定を下すときは、上記のすべてを考慮に入れてください。

個人的には、XMPPは非常に適切であることがわかりましたが、私の目的には少し肥大化しています。YMMV。

于 2012-09-28T20:29:00.253 に答える
1

フルーツバスケットと3種類のオレンジを比較しています。

XMPPは、チャットシステム(多くが存在する)をサポートするように実際に設計されている、あなたが言及した唯一のプロトコルです。その他は、単に非同期メッセージングプロトコル/技術です。XMPPは、BOSHを介したhttpベースのチャットをすでにサポートしています。間違いなく、仕様が完成したときにWebSocketもサポートします。実際にはすでに作成されたドラフトがありますが、現時点ではドラフトを使用したドラフトのように見えるため、実装はほとんどないでしょう。

XMPPを使用すると、チャットシステムを実装するための実証済みのテクノロジーに基づいて構築でき、「内部」で使用するトランスポートを選択できます。httpベースのトランスポートが必要かどうかは実際にはわかりませんが、XMPPを使用すると、将来WebSocketもサポートすることを知っていれば、ストックtcpソケットベースのトランスポートまたはhttpベースのトランスポート(BOSH)を使用できます。

他の利点はもちろん、これが広く使用されている標準であり、ほとんどすべての一般的な(そしてそれほど一般的ではない)言語とプラットフォームで既存のクライアント、サーバー、およびライブラリを再利用できることです。

ほとんどの(おそらくすべての)既存のxmppサーバーがその数のユーザーを処理するため、スケーラビリティは、引用する数値に関してはそれほど重要ではありません。

于 2012-10-01T14:22:10.590 に答える