ステップ5:PHPアプリリスナーの作成
では、最後にTopicサブスクリプションに接続してデータ処理するPHPアプリを書いて完成させましょう。
上記で使用した同じLinux VMでこのPHPアプリをホストし、Pythonで使用した同じProtonライブラリを使用します。
以下は、PHPから使用するコードになります。
<?php
include("proton.php");
$broker = "amqps://owner:sSDdaGGUo3/cpewtjhELlCi1y5SRwjFMX01tz2c/AXw=@scottgu-ns.servicebus.windows.net";
$entityName = "scottmessages/Subscriptions/php";
$messenger = new Messenger();
$messenger->start();
$messenger->subscribe("$broker/$entityName");
$msg = new Message();
while (true) {
$messenger->recv(10);
while ($messenger->incoming) {
try {
$messenger->get($msg);
} catch (Exception $e) {
print "$e\n";
continue;
}
print "Message From Scott > $msg->body\n";
}
}
$messenger->stop();
?>
以下は、Linux VMでコマンドラインから実行した出力になります。
まとめ
上記のサンプルにより、オープンAMQPプロトコルとさまざまなコミュニティですでにサポートされている既存のAMQP 1.0ライブラリを使用して簡単にWindows Azure Service Busに接続できることが分かります。
Windows Azure Service Busの新しいAMQPサポートにより、複数のシステムに渡って相互運用できる強力な分散アプリケーションをこれまで以上に簡単に構築できます。注目すべきことの一つが、異なる言語間で交換されるデータの保存方法です。この例では、ボディにテキスト文字列を使用していますが、リストやマップを含むもっと複雑なデータ形式でも同様です。
AMQP 1.0のポータブルデータ表現により可能になっています。
以下は、AMQP 1.0に対するService Busサポートの詳細に関するリンクになります。
- Windows Azure Service Bus
- NuGet上にある最新のService Bus .NETクライアントライブラリ
- Windows Azure Service BusのAMQP 1.0サポート
- Service Bus .NET APIでのAMQP 1.0使用方法
- Service Bus AMQP 1.0開発者ガイド
- 2012 //build/ カンファレンスからDavid Ingham氏によるService Bus and AMQP 1.0のプレゼン
- Apache Qpid AMQP 1.0 JMSライブラリ
- Apache Qpid Proton
もしまだWindows Azureアカウントをお持ちでなければ、無償トライアルにサインアップして、上記機能をすぐにお試し頂けます。
Hope this helps,
Scott
P.S.ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。

