PHP と jquery を使用しているアプリケーションにリバース ajax を実装しようとしています。私はそれについて少しグーグルして、XAJAを見つけましたが、それは有料のアプリケーションのようです. 同じものに利用できるオープンソースアプリケーションはありますか、または誰かがそれを実装しましたか?
いくつかのポインターまたはヒントは非常に役立ちます。
前もって感謝します。
PHP と jquery を使用しているアプリケーションにリバース ajax を実装しようとしています。私はそれについて少しグーグルして、XAJAを見つけましたが、それは有料のアプリケーションのようです. 同じものに利用できるオープンソースアプリケーションはありますか、または誰かがそれを実装しましたか?
いくつかのポインターまたはヒントは非常に役立ちます。
前もって感謝します。
私は 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);
})
あなたは彼らが「ロングポール」と呼んでいるものを探しています - 私は「ロングポールphp」を行い、スタックオーバーフローでこのスレッドを取得しました:
APEはチェックしましたか?
これは、単一の少量の ajax 接続を介したプッシュ ベースのリアルタイム データ ストリーミング テクノロジです。この概念は便利です。サーバー側の実装で同じことを複製できる可能性があります
ほとんどすべてのブラウザーにフラッシュが搭載されているため、「フラッシュ」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は、これを行うための本当にクールなプロジェクトです!