1

リアルタイム機能が必要なPHPWebアプリケーションをCodeigniterで作成しています。具体的には、私が開発している2つのリアルタイム機能は、リアルタイムチャットとリアルタイム通知フィードです。

Node.JSとSocket.ioを使用して、サイト(クライアントからクライアント)のリアルタイムチャットを作成できましたが、ノード(データベースからクライアント)を利用した通知システムの作成方法に非常に苦労しています。

主な質問:

  1. 基本的に、新しいレコードがMySQLデータベースに挿入されたときにノードイベントをリッスンさせる方法はありますか?

  2. Node.jsは、データベースに新しいレコードがあるかどうかを確認するために長いポーリングを実行できますか?もしそうなら、Node.jsで長いポーリングを行うことは、従来のポーリング方法よりも効率的でしょうか?

よろしくお願いします。どんな例でも大歓迎です!

4

1 に答える 1

1

1-データベースと使用する言語/テクノロジーによって異なります。MongoDBとnode.js自体を使用して、dbにレコードを挿入できます。

しかし、私はmysqlとphpを使用していると想定しているので、node.jsに通知するために何らかのフラグまたは...のトリガーが必要です。

私はあなたのアプリとそれがどのように機能するかについてほとんど情報を持っていませんが、私がしていることは、ajaxを使用してデータベースにレコードを挿入してからnode.jsに通知します

function new_record()
{
     $.post('<?php echo base_url(); ?>/record/add_newrecord' , {data:data} , function(res){

        if($.trim(res) == 'ok' )
        {
            if (typeof io !== 'undefined') 
            {
                  var socket = io.connect('http://localhost:6666');
                  socket.emit('new_record_ADDED' , { data : data });
            }
        }
}

または、レコードを挿入した後、phpスクリプトでこの部分を直接実行できます

        if (typeof io !== 'undefined') 
        {
              var socket = io.connect('http://localhost:6666');
              socket.emit('new_record_ADDED' , { data : data });
        }

2-おそらくありません!

于 2012-10-13T06:38:12.907 に答える