6

PHP と jquery を使用しているアプリケーションにリバース ajax を実装しようとしています。私はそれについて少しグーグルして、XAJAを見つけましたが、それは有料のアプリケーションのようです. 同じものに利用できるオープンソースアプリケーションはありますか、または誰かがそれを実装しましたか?

いくつかのポインターまたはヒントは非常に役立ちます。

前もって感謝します。

4

4 に答える 4

1

私は 2 種類のリバース AJAX を知っています:
1- ポーリング
2- プッシュ

ポーリングは実装がかなり簡単だと思います.javascriptが時間間隔ごとにサーバーに定期的なリクエストを作成するだけで、サーバーにデータがあると応答します. これは ping のようなもので、ハートビートと呼ぶ人もいますが、この問題に対する非常に明白な解決策です。ただし、サーバーが簡単に過負荷になる可能性があります。

EDIT単純なポーリング コード例:
サーバー側:

<?php
//pong.php php isn't my main thing but tried my best!
$obj = new WhatsNew();
$out = "";
if ($obj->getGotNew()){
    $types = new array();
    foreach ($obj->newStuff() as $type)
        {
            $new = array('type' => $type);
            $types[] = $new;
        }

    $out = json_encode($types);
}
else{
    $out = json_encode(array('nothingNew' => true));
}


クライアント側:

function ping(){
    $.ajax(
        {

            url : "pong.php",
            success : function (data){
                data = JSON.parse(data),
                if (data['nothingNew'])
                    return;
                for(var i in data){
                    var type = data[i]['type'];
                    if (type && incomingDataHandlers[type]){
                        incomingDataHandlers[type]();
                    }
                }


        });
}
incomingDataHandlers = {
    comments: function () {
        $.ajax({
            url: "getComments.php",
            method: "GET",
            data: getNewCommentRequsetData() // pass data to the server;
            success : function (data){
                //do something with your new comments
            }
        });
    },
    message: function (){
        $.ajax({
            url: "getMessages.php",
            method: "GET",
            data: getNewMessageRequestData() // pass data to the server;
            success : function (data){
                //do something with your new messages
            }
        });
    }
}
$(docment).ready(function () {
    setInterval(ping, 1000);
})
于 2010-12-31T06:44:44.447 に答える
1

あなたは彼らが「ロングポール」と呼んでいるものを探しています - 私は「ロングポールphp」を行い、スタックオーバーフローでこのスレッドを取得しました:

基本的な「ロングポーリング」を実装するにはどうすればよいですか?

于 2010-12-31T09:29:10.630 に答える
0

APEはチェックしましたか?

これは、単一の少量の ajax 接続を介したプッシュ ベースのリアルタイム データ ストリーミング テクノロジです。この概念は便利です。サーバー側の実装で同じことを複製できる可能性があります

于 2012-03-13T07:22:03.390 に答える
0

ほとんどすべてのブラウザーにフラッシュが搭載されているため、「フラッシュ」Websockets と組み合わせて Websocket を使用できます (平均約 96%? => http://www.statowl.com/flash.php ) => https://github.com/ gimite/web-socket-js . これをhttp://code.google.com/p/phpwebsocket/と一緒に使用できます。それでも、パフォーマンスがうまくいくかどうかは疑問です。可能であれば、node.js を使用してリバース ajax を実行します。http://socket.ioは、これを行うための本当にクールなプロジェクトです!

于 2010-12-31T18:57:11.013 に答える