2012-05-10 5 views
0

データベースのデータが変更されたときに、現在アクティブなすべてのユーザー(ログまたはコンテンツの表示)に応答を送信します。データベースのデータが変更されたときにすべてのアクティブなセッションに応答を送信

一部のユーザーは、 "データ" の表を見ています。

現在、私は5秒ごとにAJAX呼び出しを実行しています。データ・データベースの応答に変更がある場合、クライアントに通知されます。

しかし、私はもうこのようにしたくありません。

+0

「今、私はこのやり方をしたくない」と言った。 – Gerep

+1

これを行う他の方法はありますか? –

+0

5(xy)秒ごとに「リロード」を避けるために、長いポーリングまたはウェブソケットについて読むことができます。 – djot

答えて

1

ajaxポーリングの代わりに(あなたが行ったように)、comet/server-sideプッシュを使用しています。

つまり、クライアントのポーリングではなく、WebSocket、Ajax long-polling、Server-Sent Eventsなどを使用してクライアントにメッセージを送信します。

この例では、WebSocketsを使用します。私が以下で説明することは他の方法にも当てはまります。

すでにPHPアプリケーションがある場合、これを行う最も簡単な方法は、おそらくソケットを扱う別の "デーモン"スクリプトを書くことでしょう。アプリケーションがDBのデータを変更すると、デーモンスクリプトにメッセージを送信し、接続されたクライアントに変更を通知します。

メインアプリケーションとソケットデーモン間のメッセージングにZeroMQのようなものを使用できます。

0

ポーリングまたはウェブソケットを使用できます。おそらくPusher.comがあなたのための解決策です。

関連する問題