0

チャットを追加したいメンバー サイトがあります (専用ボックスの LAMP)。複雑すぎる必要はありませんが、チャットには既にログインしているメンバーのユーザー名を使用する必要があります。

これは私にとってはちょっとした副次的なプロジェクトなので、できれば最初から書きたくないので、既存のスクリプトまたはクラスが理想的です。少し検索を行ったところ、JSON/Ajax に傾いているように見えますが、決定的なものは見つかりません。

ヒント/ポインタはありますか?

4

3 に答える 3

2

Web サイトベースのチャット システムを構築する際に一般的に採用される 3 つのアプローチがあります。

  1. Java アプレット ソリューション- チャット サーバーと通信する Java アプレットを検索または構築します。アプレットは、IRC クライアント、またはカスタム サーバーを備えたカスタムメイドのチャット クライアントにすることができます。一部の Web サイトでは Java アプレットを通信フロントエンドとして使用しているのを見たこともあります。インターフェイスはすべて Javascript とブラウザーの HTML によって実行されますが、Javascript はアプレットからイベントを送受信してチャットを実行します。

  2. AJAX Post/Poll - ユーザーがメッセージを書き込むたびに、接続しているすべてのユーザーが新しいメッセージを定期的にポーリングしている HTTP サーバーにメッセージを送信します。

  3. Comet - 主に Javascript を使用して、各クライアントは HTTP サーバーへの長期的な接続を確立し、アイドル状態になります。メッセージがユーザーから送信される場合、既存の接続を介して送信されます。そして、それらをポーリングする代わりに、他のユーザーからの新しいメッセージが同じ接続を流れるだけです。

個人的には、3 番目のオプションが最もエキサイティングですが、最も複雑でもあります。Comet が必要とする長時間の接続をサポートするには、おそらく独自のバージョンの HTTP サーバーを構築する必要があります。また、TCP/IP のソケットの記述子には 16 ビットの制限があるため、サーバー上の IP ごとに約 64K ソケットに制限されます。(各クライアントにはオープン ソケットが必要であることを忘れないでください!) 最後に、Comet のクライアント側コードを構築する手法は、ブラウザーによって大きく異なります。そのためのフレームワークがいくつか存在しますが、新しいブラウザーが登場する間、それらを維持する必要があります。

小さな Web サイトを運営していて、克服可能な課題に直面したい場合は、AJAX ポーリングを使用してください。楽しくて、難しすぎず、たくさんのことを学べます。面倒でなければ、Java アプレットを見つけてください。一致するサーバーで構成すると、そのソリューションはクライアントに非常に依存しないため、サーバーの保守について心配する必要はありません。もちろん、Java ランタイム環境がクライアントにインストールされている必要があり、それが常に当てはまるとは限りません...

于 2009-03-30T04:54:34.710 に答える
1

AJAX を使用して、サーバーにチャット投稿を送信し、チャット ボックスに定期的に変更をロードします (プロトタイプには、サーバーの更新データをチェックする優れた機能があります (ajax 定期アップデーター))。「それほど複雑ではない」というあなたの仕様では、これはほとんど必要最小限のものです。

そうそう、チャット メッセージをデータベースに保存する場合は、SQL インジェクションから身を守るようにしてください。

于 2009-03-30T03:56:03.353 に答える