web-dev-qa-db-ja.com

PHPとJavaScriptを使用したリアルタイムチャットの作成

私の目標は、Facebookチャットに似たリアルタイムチャットをゼロから作成することです。すべてのメッセージをデータベーステーブルに保存したい(MySQL)。ユーザーが新しいメッセージを送信するたびに、受信側が接続されている場合リクエストが受信者のブラウザに送信され、メッセージがチャットウィンドウに表示されます。

ユーザーに新しいメッセージが送信されたかどうかをクライアントに確認させたくありませんが、サーバーにクライアントのブラウザにリクエストを送信させたいです

これはCometテクニックを使用して達成できることを知っています( このスタックオーバーフローの質問 を見ました)が見つかりませんこの特定の問題に対してこれを実装する方法についての良いガイド。

私はphpとjavascriptを使用し、可能な限り余分なソフトウェアやフレームワークを使用したくない。

WAMPServerを使用していて、Windowsを使用しています。

あなたが良いガイドやチュートリアルを知っているか、私が私が望むものを達成する方法についてのガイドラインを提供できるなら、それは非常に役に立ちます。

5
Thanasis1101

これに使用してみてください CppComet オープンソースの彗星サーバー。 PHPや他の言語用のAPIがあります。そして、これ チャットの例 または this

2
Trapenok Victor

私はすでに完全ではないリアルタイムメッセージングシステムであるアプリケーションを開発しましたが、それはリアルタイムのように動作します。外部の新しいフレームワーク/ APIを使用せずに構築され、Ajax jquery、PHP、Mysql、Javascriptを使用してこれを開発するための既知のよく知られたスキルを使用しました。

使用されるロジックは次のとおりです。

  1. すべてのメッセージはデータベースに保存されます、
  2. ページをロードすると、すべてのメッセージがデータベースからロードされます。
  3. リロード後に新しいメッセージを受け取ったら、ページ全体を再度リロードせずに新しいメッセージをロード/表示する必要がありますか?これは、javaScriptとajax jqueryを使用して行われます。新しいメッセージのみを再読み込みして表示するために、0.5秒ごとにタイムアウトを設定しました。
  4. 私のコードでは、最初にページが読み込まれると、すべてのメッセージがそれぞれdivタグに読み込まれます。後で、新しいメッセージがdbに入るたびに、新しいメッセージが表示されます。
    divタグ。そのシンプルで、外部APIなしで動作します。

新しいメッセージを更新してそれらをdivタグにスローするには、ajax jqueryの.load()を使用し、0.5秒ごとに更新するためにJavaScriptを使用してタイムアウトを設定します。

1
Harish Kulkarni

あなたの正確な質問が何であるかはわかりませんが、Websocketsが答えです!

https://github.com/crossbario/autobahn-js

https://github.com/voryx/Thruway

(参考までに、WebSocketのコンテキストでWAMPを見ると、彼らはwindows/Apache/mysql/phpではない何かについて話している)

0
mkaatman

PHPでNode.JSを使用することもできます。 PHP and Node.js でリアルタイムチャットアプリを作成する==

0
Supun Kavinda