ステップ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で、私をフォローしてください。