1

http://www.providesupport.comおよびhttp://www.liveperson.com/に似た基本機能を備えたライブ ヘルプ チャット システムを開発します。

アプリケーションの構成方法がわかりません。管理コンソールを使用してさまざまなチャットを管理するサポート スタッフとエンド ユーザーが対話するための Web ベースのチャット スクリプトが必要です。PHP/JavaScript/AJAX を組み合わせて使用​​してエンド ユーザーのチャットを実装し、Java を使用して管理パネルを構築することを計画しています。設定やチャットなどを保存するための MySQL データベースもあります。

含めたい主な機能は次のとおりです。 - 複数の同時チャットのサポート - 複数のオペレーター - オペレーター間のチャットの転送 - 「ユーザーが入力中」通知 - データベースへの各チャットのログ記録 - オンライン/オフライン モード

私は、システムの基本的なアーキテクチャ、特にチャット要素がどのように機能するかについて、3 つの可能なアプローチを考え出しました。どちらのアプローチが最適かはわかりませんが、正しい方法で私を指摘し、私が見逃した長所/短所を指摘していただければ幸いです。

アプローチ 1 - チャット用の静的 HTML ファイル

PHP ユーザー チャット ボックスは、チャットを含む HTML ファイルへの書き込みと読み取りを行います。次に、このファイルを数秒ごとにリロードして、更新が表示されるようにします。Java 管理側も同様のことを行います。

利点: - メッセージはずっとログに記録されます。- オペレーターは、異なる HTML ファイルをロードすることにより、異なるチャットを管理できます - 異なるオペレーターが同じチャットをロードして、ユーザーの転送を可能にできます

短所 - ユーザーが通知を入力すると、別の方法が必要になります

アプローチ 2 - チャットを保存する MySQL データベース

チャットは、新しいメッセージが入力されるたびに MySQL データベースに書き込まれます。管理者とユーザー側は、数秒ごとにデータベースの更新をチェックし、更新があればチャット ウィンドウをリロードします。

利点: - 各メッセージが DB に格納されるため、メッセージは常にログに記録されます。- オペレーターは、異なる SQL クエリを介して異なるチャットを管理できます - 異なるオペレーターが同じチャットをロードして、ユーザーの転送を許可できます

短所: - ユーザーが通知を入力していると、別の方法が必要になる - データベースが非常に大きくなる - データベースに常にクエリを実行すると、サーバーの負荷が高くなり、大きなテーブルでは遅くなる可能性がある

アプローチ 3 - 直接ソケット接続

PHP Web エンドには、対話している Java 管理クライアントへの直接ソケット接続があります。すべてのチャット データはこれを通過し、チャットが終了するとデータベースに書き込まれて保存されます。

利点: - 新しいメッセージがいつ受信されるかを各当事者が知るので、迅速になります - 「ユーザーが入力中です」メッセージはソケット接続を介して送信できます - データはログに記録されます

短所: - ソケット接続が失われ、チャットが終了する可能性があります。- オペレーター間のチャットの転送がどのように機能するかわかりません

概要

では、要約すると、どの方法が最適でしょうか? 私が考えていないより良い方法はありますか?HTML5 Web ソケットを確認しましたが、ブラウザとの互換性が必要です。

これに加えて、管理者ユーザーがログインしているかどうかに応じてオンライン/オフライン インジケーターを表示するにはどうすればよいですか?

コードなどとは対照的に、より一般的な概要を求めていますか?

ご協力いただきありがとうございます。

4

1 に答える 1

0

実際のクロスブラウザ ソケットを取得するためにsocket.ioを検討しましたか?

それ以外の場合は、既に存在する XMPP JS ライブラリのように、車輪を再発明する代わりに、このために既に開発されているものを使用できます。

自分で何かを実装したい場合、ベストショットは ajax ロングポーリングであり、ページを常にリロードせず、何らかの Web サービスを提供し、JS (または jQuery) を使用して通信し、チャットのみを送信します-関連データ。

于 2012-06-30T02:46:12.660 に答える