1

ソーシャル ネットワーク Web サイトを作成していて、IM/チャット ソリューションが必要です。

会話は 1 対 1 のみで、ユーザーは友人とのみチャットできます (つまり、Facebook チャット - チャネルも部屋もありません...)。

Web サイトは、MySQL データベースを使用した CodeIgniter(PHP) で作成されています。おそらくVPS(Linux)に載せるので、環境をコントロールできるかもしれません。また、10万人以上のユーザーがいると予想されています。

それで、チャットの作り方についていくつかのアイデアが必要です。

これまでの私の考え:

  • X秒ごとにAjaxポーリング(このサイズのWebサイトには適していません)
  • Jabber/XMPP システムの実装 (これに関する情報はありませんし、可能でもありません)
  • サードパーティのサービス ( Pusher.comなど)を使用する
  • Node.jsとでチャットを作成し、socket.ioそれを Web サイトの他の部分から独立させる

SOでいくつかの調査といくつかの回答を読んだ後

https://stackoverflow.com/a/11362929/928540

https://stackoverflow.com/a/5654487/928540

Node.js私はとのアイデアをとても気に入っているsocket.ioので、それについての意見や、ガイダンス、リンク、ヘルプ、チュートリアルなどをお聞きしたいと思います。

4

2 に答える 2

1

また、10万人以上のユーザーがいると予想されています

問題は、アクティブなユーザー/接続の数でもあると思います。

Ajax は X 秒ごとにポーリングします (このサイズの Web サイトには適切なソリューションではありません)。

そうですね。これは悪い考えです。

Jabber/XMPP システムの実装 (これに関する情報はありませんし、可能でもありません)

BOSHのイジャバードみたいなのが結構流行ってますね。インストールが非常に簡単で、strophe.jsをBOSHクライアント(ブラウザのjavascript)として使用できるため、prosodyで遊んだ。

サードパーティのサービス (Pusher.com など) を使用する

実装が最も簡単ですが (スケーリングの問題はありません)、高価になる可能性があります。5000 の同時接続には月額 199 ドルの費用がかかります (高すぎます)。再び、約 5000 のアクティブな接続があるので、収益性があります (?)。

Node.js と socket.io でチャットを作成し、ウェブサイトの他の部分から独立させる

非常に人気のある解決策ですが、現在、一部のユーザーがメモリ リークを経験していると思います (ただし、これは解決されている可能性があります)。websockets transportのみの問題かもしれません。また、実際にはリークではないかもしれませんが、遅延 GC によるメモリ使用量が多いだけです。完全にコミットする前にプロファイリングすることをお勧めします。

于 2012-07-27T12:03:53.327 に答える
0

Meteorは、使用できるソリューションになる可能性があります。「ライブ」アプリケーションを作成するように設計されており、1 対 1 のメッセージング システムを構築するのは簡単だと思います。

PHPではないことは知っていますが、Node.jsを使用することについて言及しました。Node.jsを使用できる場合は、これを使用できると考えました。

于 2012-07-27T02:25:55.283 に答える