1

これが PubNub で可能かどうか知りたいです。PHP を使用してデータベース処理を行い、JavaScript を使用して HTML ページに更新を表示することで、アプリでリアルタイム通信を実現したいと考えています。これはシナリオです:

  1. PHP ファイルで実行されている SQL の挿入/更新/削除によるデータベースの変更。
  2. この同じ PHP ファイルは、次のように呼び出します。

    $pubnub->publish(array( 'channel' => 'my_test_channel', 'message' => array( 'database_id' => '100' ) ));

  3. JavaScript ブラウザは、投稿された更新をリッスンします。

    function(message) { if ('database_id' in message) { // さらに処理を行う } } );

この方法は、ユーザーが登録して上記の手順を実行すると、管理者がデータベース トリガー、手順、または ajax によるポーリングを使用することなく、新しいユーザーの管理パネルで更新を即座に受信できる場合に機能しますか?

4

1 に答える 1

2

UPDATE、INSERT、DELETE、およびPHPでMySQLトリガーを介してPubNubPUSHメッセージを呼び出す

サーバーからWebアプリ管理インターフェースおよびモバイルアプリへの更新を呼び出す方法はいくつかあります。簡単な方法は、登録が発生したときにPHP APIで公開することですが、MySQLトリガーを使用するよりも低レベルになる可能性があります。

MySQLを使用すると、ストアドプロシージャを介してコーディングを簡単にアクセスできるトリガーにラップできます私はPubNubでそれを行う方法を知っていますが、Pusherで同様の何かを作成することができます。これがPubNubとMySQLのクイックガイドです。シンプルさはあなたが求めるものであり、ここにあなたの解決策があります!テーブルのUPDATEINSERTDELETEアクションを、毎回呼び出されるストアド関数にバインドし、PubNubを使用してモバイルアプリやウェブアプリにプッシュ通知を簡単に送信する簡単な方法を説明します。

PubNubプッシュメッセージ

DELIMITER $$
CREATE PROCEDURE push_message
(p1   DOUBLE,
 p2   DOUBLE,
 p3 BIGINT)
BEGIN
 DECLARE cmd CHAR(255);
 DECLARE result CHAR(255);
 SET cmd = CONCAT('curl https://pubsub.pubnub.com/publish/demo/demo/0/mysql_triggers/0/%22',p1, ',' ,p2, ',' ,p3,'%22');
 SET result = sys_eval(cmd);
END$$;

注:PROCEDUREタイプが正しいDOUBLEまたはVARCHARまたはTEXTであることを確認してください。

MySQLトリガーコードのINSERTの例

CREATE TRIGGER push_message_trigger AFTER INSERT ON your_table_name_here
FOR EACH ROW
CALL push_message(NEW.Column1, NEW.Column2, NEW.Column3);

注:プッシュメッセージには、ここで必要な列を必ず含めてください。

MySQLトリガーコードの更新例

CREATE TRIGGER push_message_trigger AFTER UPDATE ON your_table_name_here
FOR EACH ROW
CALL push_message(NEW.Column1, NEW.Column2, NEW.Column3);

デバッグコンソールを介してプッシュメッセージを監視する

http://www.pubnub.com/console?sub=demo&pub=demo&channel=mysql_triggers-PubNubDevConsoleを介してトリガーが起動されるのを見ることができます。このようにして、変更する必要のあるパラメーターと、モバイルおよびWebデバイス上のPubNubWebSocketなどで受信できる各プッシュ通知に含めることが重要なデータを理解できます。

JavaScriptでプッシュメッセージを受信する

<div id=pubnub ssl=on></div>
<script src=//pubnub.a.ssl.fastly.net/pubnub-3.3.1.min.js></script>
<script>(function(){

    PUBNUB.init({
        subscribe_key : 'demo',
        ssl           : true
    }).subscribe({
        channel  : 'mysql_triggers',
        callback : function(mysql_trigger_details) {
            alert(mysql_trigger_details);
        }
    });

})();</script>

これで、MySQLから簡単な手順で直接変更イベントを送受信するために必要な手順が完了しました。HTTPSプッシュ通知をキューに入れてプールするデーモンプロセスにシグナルを発行するなど、この方法を最適化する方法があります。これは十分に効率的です。

于 2012-11-30T18:15:49.517 に答える