Realplexorのイデオロギーのインスピレーションは前のプロジェクトであるdklab_multiplexorでしたが、Realplexorのコードは実際にはそれとは何の関係もありません。 そのため、名前を変更することにしました。 製品の機能も比較できません(以下を参照)。コードサイズは7倍になりました。
リアルタイムディレクションは現在、西側で非常に活発に開発されており、Pythonのイベント指向のWebサーバーであるTornado製品は特に際立っています。 確かに、トルネードは、Cometサーバーではなく、Cometサーバーを「含む」プログラムを作成できるツールです。 キーワード: Comet 、Push Server、Long polling、JavaScript、XMLHttpRequest。
Realplexorの主な利点:
- 使いやすさ:JavaScript用のAPI、PHP用のAPIの可用性(将来-他の言語用);
- 設定の容易さ;
- 幅広い機能(存在しないか、アナログで直接利用できない)。
一度見た方が良い...
別のオンラインサンドボックスを作成して、新しいRealplexorの機能とCometサーバーの一般的な用途を示しました(ちなみに、これは私の新しいスタートアップRutwitが使用するものと物理的に同じRealplexorデーモンです)。 サンドボックスは、マルチチャネルチャットのようなものを実装しています。入力すると、異なるコンピューターで実行されている2つの独立した「ブラウザ」のようになります。
- 上部の「ブラウザ」にはチャネルが表示されます 。サーバー側で誰かがそこに送信するとすぐに、新しいメッセージがすぐに表示されます。 もちろん、数十万人のユーザーが同時にこのページを表示でき、すべて同じものが表示されます(Realplexor JavaScript APIを使用して実装されます)。 新しいチャンネルをその場で追加(購読)したり、既存のチャンネルを非表示(購読解除)したりできます。
- 下のブラウザには、名前を指定して任意のチャンネルにメッセージを追加できるフォームが含まれています。 AJAXフォームはサーバーに送信され、PHPスクリプトは既に、受信したテキストをPHP APIを介してRealplexorに書き込みます。 (はい、そのようにチャットできます。)
サンドボックスは、次のRealplexor機能を示します。
- チャンネルの動的な追加/削除で複数のチャンネルを同時に聴く。
- 複数のチャネルに同時にメッセージを送信します(実際、チャットになりました)。
- オンラインチャネル(少なくとも1人のユーザーがリッスンしているチャネル)のリストをその場で更新します。
- Realplexorに付属のJavaScript APIおよびPHP APIを使用します。
コードリスト1:サンドボックスコードからの興味深い抜粋:JavaScript
// Dklab_Realplexorクライアントを作成します。
var realplexor = new Dklab_Realplexor (
" http://rpl.YourSite.com/"、// RealplexorのエンジンURL。 サブドメインである必要があります
"demo_" //名前空間
) ;
//コールバックをチャンネルアルファにサブスクライブします。
Realplexor。 subscribe ( "Alpha" 、 function ( result 、 id ) {
アラート (結果) ;
} ) ;
//コールバックをチャンネルベータに登録します。
Realplexor。 subscribe ( "Beta" 、 function ( result 、 id ) {
div innerHTML = result ;
} ) ;
//サブスクリプションを適用します。 コールバックは、データの到着時に非同期的に呼び出されます。
Realplexor。 実行 ( ) ;
コードリスト2:サンドボックスコードからの興味深い抜粋:PHP
// Realplexorサーバーにアクセスするための新しいAPIオブジェクトを作成します。
require_once "Dklab / Realplexor.php" ;
$ rpl = new Dklab_Realplexor ( "127.0.0.1" 、 "10010" 、 "demo_" ) ;
...
//チャネルにデータを送信します。
$ rpl- > send ( array ( "Alpha" 、 "Beta" ) 、 $ _POST [ 'message' ] ) ;
Realplexorをインストールする
dklab_realplexor.tar.gzをダウンロードしたら、自動実行Linuxサービスとしてインストールできます。
cd / opt
wget http: // github.com / DmitryKoterov / dklab_realplexor / tarball / master
tar zxf * realplexor * .tar.gz
mv * realplexor * / dklab_realplexor
#次に、init-scriptを処理します。
ln -s / opt / dklab_realplexor / dklab_realplexor.init / etc / init.d / dklab_realplexor
chkconfig-dklab_realplexorを追加
chkconfig dklab_realplexor on
サービスdklab_realplexor start
RutwitでRealplexorを使用する方法
チャンネルのオンラインステータスのリアルタイム検索と追跡。 検索結果を表示すると、クエリに一致するツイートがリアルタイムで一番上に表示されます(GoogleやBingのtwitter検索、FriendFeedなど)。 この機能を提供するには、サーバーは各時点で、PHP APIの対応する機能を提供する「アクティブ検索」に関する情報を持っている必要があります。
チャンネルを購読します。 ツイートフィード(サイト全体で独自の、 パブリックなど)を見ると、Realplexorチャネルが使用されます。 したがって、新しいツイートは、ページをリロードすることなく、すべてのユーザーに同時に表示されます。
一度に多くのチャンネルを購読します。 FriendFeedの表示モードでは、メッセージがブランチにグループ化されると、各ブランチは個別のRealplexorチャネルのサブスクリプションになります(つまり、ブラウザは1つの接続で数十、時には数百のチャネルに同時にサブスクライブされます)。 複数のサブスクリプションは、Realplexorの主要な機能です。たとえば、Like / Like(またはリツイート)、プライベートメッセージなど、それを介して実装されます。
一度に複数のチャネルにメッセージを送信します。 ユーザーがツイートすると、メッセージは自分の個人チャンネル、すべての友達のホームチャンネル、および1つのRealplexorリクエストのパブリックチャンネルに同時に送信されます。
任意の構造のメッセージの転送。 RutvitaのPHPスクリプトは、ネストされた連想配列の形式でRealplexorメッセージを生成します。これは、ブラウザー側で透過的にJavaScriptオブジェクトに変換されます。
次は?
APIの説明と例は、プロジェクトページにあります 。 開発者を招待して製品をテストします。 Realplexorを改善するためのコメントや提案に加えて、GitHubの分岐点とメールのパッチに喜んでいます。
プロジェクト公式ページ