2016-05-19 8 views
1

Ajaxを介して別のユーザーにPHPリクエストを送信する方法は? Bと誰も他の例えばPHPがAjaxにリクエストを送信する方法を教えてください。

、ユーザーAがボタンを押した場合、ユーザーはそれについて、それらを伝えるインスタントポップアップがあります。私のアプリケーションでは、$_SESSIONを使用してログに記録されたユーザーを宣言しています。自分で作成したログインシステムを最初から構築しています。

私はちょうどPHPが特定のユーザーにデータを送信したいと思っています。

+3

AJAX要求はサーバーではなく、他の方向に、ブラウザから送信されます。サーバーがブラウザーに送信する必要がある場合は、WebSocketを使用して常時接続する必要があります。または、AJAXで定期的にポーリングを使用することもできます。 – Barmar

+0

@Barmar私は定期的なポーリングを考えていましたが、それはプロフェッショナルではないようでした。 – Kajcioch

+2

@Barmarバーマンは何を言っているのですか?ウェブソケットのルートに行く場合はNodeJSとhttp://socket.ioを見てください。またあなたが言っているものがhttpリクエストであるPHPリクエストのようなものはありません。 – Maantje

答えて

1

Barmar氏によると、WebSocketsは連続ポーリングシナリオを処理するデファクトスタンダードです。

ただし、アプリケーションをリアルタイムで更新する必要がなく、一定のユーザー数を超えることがない場合は、JavaScriptタイマーを使用して、結果のXMLをAJAXトランザクションからロードし、 DOM。継続的にポーリングするアプリケーションをスケールするのがどれほど難しいかを意識してください。

は、あなたが継続的にポーリングAJAXで行くことに選ぶ必要があり、期待されるデザインは、これらの線に沿って次のようになります。サーバー上のPHPプログラムへ

  1. ユーザーAポストデータ。
  2. PHPプログラムは、ユーザのアクションをデータベースの「キャッシュ」テーブルに保存します。
  3. ユーザーBのクライアントは、最終的にサーバーにAJAX要求を行います。
  4. そのユーザーのユーザーID($_SESSION['user_id']など)を含む「キャッシュ」テーブル内のアイテムは、 というユーザーBのクライアントに返されます。
  5. ユーザーBのクライアントは、メッセージが受信されたことを通知します。

あなたがメッセージのポーリングしながら、独自のサーバをDDoS攻撃は、INGの終わる可能性は十分のユーザーと、あなただけの30秒ごとにポーリングしてもことを覚えておいてください。


関連する問題