0

私はチャットアプリケーションの作成を考えていましたが、効果的なものを作成する方法についてあまり知らないので、チャットアプリケーションを作成するための「最良の」そして最も効率的な(パフォーマンス)方法について話し合うことができればと思っていました。

したがって、基本機能はおそらくお互いのメッセージとチャットログを見ているでしょう。

そこで、codeigniterとajaxを使用して各メッセージのビューと送信を作成することを検討しました。メッセージが送信されるたびに、メッセージはチャットログのテーブルに並べ替えられます。次に、メッセージが送信されるたびにクエリが送信されると、このアプリのスケーリングがひどくなると思ったので、クライアントのcookieまたはjavascriptオブジェクトにログを保存し、チャットを終了するとログが送信されることを考えていました。データベースに保存されます。しかし、これが機能するのか、それともセキュリティ面で非常に悪いのかはわかりません。

また、私はチャットやWebSocketに関するstackoverflowに関する記事を読んでいて、メッセージの送信を管理する効果的な方法としてajax APEで実行していました...しかし、WebSocketやその使用方法などについてはあまりよくわかりません...

とにかく、私はチャットアプリケーションを作成できると確信していますが、優れた、効果的で、スケーラブルなアプリケーションではありません...

チャットアプリケーションを作成するための最良/最も効果的な方法に関する提案はありますか?

いくつかのuはnode.jsまたはsocket.ioを提案しました。

私はそれらの2つについて何も知らないので、どちらが良いですか?

また、彼がチャットルーム全体に1つのサーバーを使用しているというnode.jsの例では、チャット/チャットルームごとにnode.jsサーバーが必要であることに気付きましたか?

4

3 に答える 3

2

PHPとAJAXを使用してこれを構築することを検討している場合でも、それがオプションである場合は、Node.jsを使用してこのようなことを行うことを強くお勧めします。このようなものにはるかに適しています。特に、Node.jsに関連して高価なHTTPリクエストを使用するAJAXと比較すると、その大きな利点は、さまざまな種類のI / Oの実行が非常に高速で、非同期であるということです。また、Node.jsプロセスは非ブロッキングであるため、さらに高速になります。

この例もご覧ください。コードはNode.jsの作成者自身によって書かれました。また、Node.jsはデータベースとインターフェースできるため、テキストベースのログなどを使用する必要はありません。

WebSocketに興味があるが、クロスブラウザーの癖をすべてキャッチしたくない場合は、Socket.IOを必ずチェックしてください。これはWebSocketを操作するためのライブラリであり、さまざまなブラウザーバージョンのすべてを処理するのに非常に優れていることがわかりました。

お役に立てば幸いです。

于 2011-08-18T18:33:57.180 に答える
2

node.jssocket.ioがこのタスクに最も適しているようです。

node.jsを使用すると、メモリ使用量の少ない多くの持続的接続を処理できます。これは、すべてのチャットクライアントの処理に非常に適しています。socket.ioは、ノードサーバーとWebブラウザーの間でメッセージを渡すことを可能にするwebsockets / comet/long-pollingを抽象化したものです。

ユーザーインターフェイスには、codeigniterまたはその他のフレームワークを引き続き使用できます。

于 2011-08-18T18:34:23.557 に答える
1

あなたが本当にハードコアを大きくしているのなら、あなたはメッセージキューのためにデータベースを置き換えることを考えたいかもしれません。Second Lifeは、ゲーム内メッセージングのためにメッセージキューの評価を行いました。

http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

ただし、チャットログは、データベースの場合のようにサーバーに保持されることはほとんどありません。

于 2011-08-18T18:50:06.413 に答える