Upload
tatsuaki-sakai
View
1.141
Download
0
Embed Size (px)
Citation preview
祝!通知ハブGA
JAZUG アドバイザ(通称:組長)
Microsoft MVP Windows Azure
Microsoft Regional Director
酒 井 達 明 (@tatsuakisakai)
通知ハブとは
サービス バスメッセージングの拡張
–Windows Azure SDK 2.1 の名前空間は“Microsoft.ServiceBus”
外部のアプリケーションからプッシュ通知
–プッシュ通知だけ利用したい場合に便利
–数百万台のデバイスに対して同時配信を実現
様々なデバイスをサポート(Windows Store, iOS, Android, …)
タグ付けによる配信先のフィルタリング– 受信者があらかじめ受信したいタグを登録
– 送信者は適宜タグを付加して配信
プッシュ通知の仕組み
クライアント側の準備
– クライアントアプリはプラットフォームの通知サービスに対しハンドルを要求
– 通知サービスはアプリケーションハンドルをクライアントに返信
– クライアントはバックエンドに対してハンドルを登録
メッセージ送信
– バックエンドは受信対象者のハンドルとともに通知サービスにメッセージを送信
– 通知を通知サービスは対象のクライアントにメッセージ
管理
– 通知サービスは無効化されたハンドルをバックエンドに通知
プラットフォームの
通知サービス
バックエンド
クライアント
通知ハブを利用するとこうなる!
全てのプラットフォーム、一手に引き受けます!
クライアントの準備
– 各通知サービスにハンドルを要求
– 受信したハンドルは通知ハブに送信
メッセージの送信
– バックエンドは通知ハブにメッセージを送信
– 通知ハブは各通知サービスにメッセージを送信
– 各通知サービスはクライアントに対してメッセージを配信
APNs WNS
通知ハブ
バックエンド
iOS アプリ Windows ストアアプリ
サーバ側のコード例
string connectionString = ServiceBusConnectionStringBuilder
.CreateUsingSharedSecret(new Uri("sb://xxxx.servicebus.windows.net/"),"owner", “Enter your shared secret key");
var hubClient = NotificationHubClient.CreateClientFromConnectionString(connectionString, “hubname");
hubClient.SendTemplateNotificationAsync(
CreateToastImageAndText02(“画像のURL",
“キャプション”, “メッセージ本文" ));
クライアント(ストアアプリ)側のコード例
var cn = ConnectionString.CreateUsingSharedSecret(new Uri("sb://tatsuakisb.servicebus.windows.net/"), "owner",
" Enter your shared secret key ");
NotificationHub notificationHub = new NotificationHub(“hubname", cn);
(中略)
var channel = await PushNotificationChannelManager.
CreatePushNotificationChannelForApplicationAsync();
List<string> Tags = new List<string> { "Windows8", "Japan" };
await notificationHub.RegisterTemplateAsync(channel.Uri,
テンプレートのインスタンスを指定, “テンプレート名", Tags);
まとめ
通知ハブを使えば、、、、
–モバイルサービスを使わなくてもプッシュ通知ができる
–受信者をタグで振り分けることができる
–デバイスごとにバックエンドのロジックを書かなくていい