6. @cloudbeatsch
unique token per device and app
persist, refresh and retrieve millions of
tokens
challenge - registration management
7. @cloudbeatsch
~1 millisecond to send an async
notification
~16 minutes to send 1 million notifications
~32 servers to send them within 30
seconds
challenge - time to deliver message
8. @cloudbeatsch
personalized per user and/or device
language, message format, visuals
metrics (currency, temperature, length …)
challenge - message personalization
9. @cloudbeatsch
users/apps subscribe to topics
only interested in rugby and tennis news
and only when written by Rob, Ben or Paul
challenge - message routing
14. @cloudbeatsch
Windows 8
var channel = await PushNotificationChannelManager.
CreatePushNotificationChannelForApplicationAsync();
var hub = new NotificationHub("<hub name>", "<connection str>");
var result = await hub.RegisterNativeAsync(channel.Uri);
iOS
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *) deviceToken {
SBNotificationHub* hub = [[SBNotificationHub alloc] initWithConnectionString:
@"<connection str>" notificationHubPath:@«<hub name>"];
[hub registerNativeWithDeviceToken:deviceToken];
Android
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
NotificationHub hub = new NotificationHub("<hub name>", "<connection str>", this);
String regid = gcm.register(SENDER_ID);
hub.register(regid);
15. @cloudbeatsch
var hub = NotificationHubClient.CreateClientFromConnectionString(
"<connection string>", “<hub name>");
hub.SendWindowsNativeNotificationAsync(@“<toast>
<visual>
<binding template="ToastText01">
<text id="1">This is a very simple notification</text>
</binding>
</visual>
</toast>“);
hub.SendAppleNativeNotificationAsync(@“{ aps: {
alert: "This is a very simple notification"
}}“);
hub.SendGcmNativeNotificationAsync(@“{"data" : {
"msg" : "This is a very simple notification"
}}");