8

Web サイトの訪問者と Web サイトの管理者の間のチャット機能を備えた Web サイトの開発を検討しています。

これを行う最善の方法は XMPP を使用することだとわかっていますが、使用した経験はありません。PHPを使用してこれを実装しようとしています。

XMPPHP をダウンロードし、例を編集して GMail の Google チャット クライアントにメッセージを送信しましたが、返信すると、相手がメッセージを受信しなかったと Google から通知されました。

これまでのところ、最も有益なチュートリアルはhttp://www.ibm.com/developerworks/xml/tutorials/x-realtimeXMPPtut/ですが、「Openfire」をインストールする必要がある理由も、Web サイトを構築したくない理由もわかりません。私のローカルマシンで。

コードの作成を開始できるように、このプロジェクトをセットアップするために何が必要か (さらに重要なことに、なぜ) 教えてもらえますか?

4

3 に答える 3

9

コメントから他の回答への判断として、「関連」サイドバーに大量の解決策が表示されるため、解決策は提供しません。適切なものを選択する必要があり、「理由」を知ることで、知識に基づいた決定を下すことができます。

チャットが正しく感じられるためには、応答に何らかの即時性が必要です。時間の 1 秒の遅れは、時間の経過とともにユーザーに認識され、時間のずれを感じさせます。ブラウザーで即時または「リアルタイム」応答を機能させるには、新しい情報が入ってくるとすぐに表示されるように永続的な接続が必要です。

HTTP のリクエスト/レスポンス仕様のため、ブラウザでの永続的な接続は困難です。ブラウザーに永続的な接続をもたらすための作業中の仕様がありますが、それらのブラウザーはユビキタスではありません。将来的には、永続的な接続はWebSocketsSPDYによって提供されます。どちらも最新バージョンの Chrome、Safari、および FireFox で利用できますが、IE は少し遅れています。

永続的な接続の別のオプションはXMPPです。XMPP は、Jabber チャット クライアントに使用されるプロトコルです。オープンソースの実装であるため、他の多くの用途に移植されています。ブラウザを XMPP ソケットに接続し、新しいメッセージをリッスンできるようにする JavaScript ライブラリが存在します。私が過去に見た方法は、メッセージを Web サーバーに送信し、Web サーバーが新しいメッセージについて XMPP サーバーに通知し、XMPP サーバーが新しいメッセージをすべてのユーザーにブロードキャストするというものでした。ただし、これには XMPP サーバーが必要であり、システムの複雑さが増します。

ほとんどのユーザーはブラウザーのバージョンの最先端にいるわけではないため、古いブラウザーを処理できる必要があります。ほとんどの代替手段には、新しいデータが到着するたびに応答するサーバーへの長時間接続を開くことが含まれます。古いブラウザで永続的な接続をシミュレートする方法のリストを次に示します。

  • アドビ フラッシュ ソケット
  • ActiveX HTML ファイル (IE)
  • サーバー送信イベント (Opera)
  • マルチパートエンコーディングを使用した XHR
  • ロングポーリングを使用した XHR

これらの古いメソッドと WebSocket は、Juggernautというライブラリによってサポートされています。

UPDATE Juggernaut は、正当な理由により、メンテナーによって廃止されました。最新のブラウザーは、Server-Sent Events (SSE) と呼ばれる仕様を通じて、すぐに使用できる永続的な接続をサポートしています (もちろん IE は例外です)。下位互換性はポリフィルによって処理されるようになり (ポリフィルとは何ですか? )、非推奨の投稿ノートにあるように、レガシー ブラウザーに SSE を導入するための優れたものがいくつかあります。

于 2012-07-02T21:24:40.897 に答える
0

これに役立つリソースがたくさんあります。簡単な Google 検索では、次の情報が表示されます。

http://sixrevisions.com/tools/10-free-website-chat-widgets-to-make-your-site-interactive/

http://www.phpfreechat.net/

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/

于 2012-06-14T16:36:59.617 に答える