+ All Categories
Home > Technology > Delivering Millions of Push Notifications in Minutes

Delivering Millions of Push Notifications in Minutes

Date post: 11-May-2015
Category:
Upload: sasha-goldshtein
View: 791 times
Download: 2 times
Share this document with a friend
Description:
Presentation from TechDays Netherlands 2014 on using Azure Notification Hubs to deliver millions of push notifications - through a Mobile Services backend or through an arbitrary backend including Node.js or .NET console apps.
Popular Tags:
24
Transcript
Page 1: Delivering Millions of Push Notifications in Minutes
Page 2: Delivering Millions of Push Notifications in Minutes

Laat ons weten wat u vindt van deze sessie! Vul de evaluatie in via www.techdaysapp.nl en maak kans op een van de 20 prijzen*. Prijswinnaars worden bekend gemaakt via Twitter (#TechDaysNL). Gebruik hiervoor de code op uw badge.

Let us know how you feel about this session! Give your feedback via www.techdaysapp.nl and possibly win one of the 20 prizes*. Winners will be announced via Twitter (#TechDaysNL). Use your personal code on your badge.

* Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are examples

Page 3: Delivering Millions of Push Notifications in Minutes

Delivering Millions of Push Notifications in MinutesSasha GoldshteinCTO, Sela GroupMicrosoft C# MVP, Azure MRS, Azure Insiderblog.sashag.net@goldshtn

Page 4: Delivering Millions of Push Notifications in Minutes

Typical Push System Diagram

Platform Push Provider

Your Web Service

Database

App

Page 5: Delivering Millions of Push Notifications in Minutes

Azure Mobile Services is a backend for your mobile apps

… that has a free tier… cloud scale… support for all mobile platforms

Page 6: Delivering Millions of Push Notifications in Minutes

Mobile Services Push Architecture

Microsoft Azure

SQL DatabaseNode

+ Expres

s backen

d

Apple Push Notification

Service

Windows Notification

Service

Google Cloud Messaging

Microsoft Push

Notification Service

URI/Token

Device Type

ID

aabc 43df …

iOS 123456

https://live...

Windows 8 789123

56aaffbb…

Android 456789

Server scripts

Managed by you

Page 7: Delivering Millions of Push Notifications in Minutes

Azure Notification Hubs

… abstract away platform push services… support targeted multi-tag delivery… scale to millions of users

… Mobile Services or any other backend

Page 8: Delivering Millions of Push Notifications in Minutes

Notification Hub Push Architecture

Microsoft Azure

Node +

Express

backend

Apple Push Notification

Service

Windows Notification

Service

Google Cloud Messaging

Microsoft Push

Notification Service

Server scripts

Notification Hub Service

SQL Database

Tag URIs/Tokens

Templates

sports [ ab…, 5a…, …]

alert: …<toast…>data: …

news [ bc…, 5a…, …]

123456 [ 5a… ]

Not managed

by you

Page 9: Delivering Millions of Push Notifications in Minutes

Options for Push Notifications

Registration Push

Through Mobile ServiceExplicit channel managementMobile Services push module

Directly from client to Notification Hub

Azure hub module from Mobile Service

Azure NuGet package from other backend

Through Mobile Service to Notification Hub

Page 10: Delivering Millions of Push Notifications in Minutes

Registration Tags……are totally up to you!Examples:

user:123456 region:Europesports news

conversation:aa412group:Colleagues_65523

Page 11: Delivering Millions of Push Notifications in Minutes

Per-Platform Registration fromMobile Servicehub.wns.createNativeRegistration( request.body.channelUri, [request.user.userId, “sports”], function (error, registration) { ... });hub.apns.createNativeRegistration( request.body.deviceToken, [request.user.userId, “sports”], function (error, registration) { ... });

Page 12: Delivering Millions of Push Notifications in Minutes

Direct Registration fromWindows 8 Clientvar channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

var hub = new NotificationHub(name, connString);await hub.RegisterNativeAsync(channel.Uri);

Page 13: Delivering Millions of Push Notifications in Minutes

Push from Mobile Servicehub.wns.sendToastText02( [ ‘sports’, ‘news’ ], { text1: ‘Breaking news’, text2: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error) { ... });

Page 14: Delivering Millions of Push Notifications in Minutes

Push from Mobile Servicehub.apns.send ( [ ‘sports’, ‘news’ ], { badge: 1, alert: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error) { ... });

Page 15: Delivering Millions of Push Notifications in Minutes

Push from Other .NET Backendvar hub = NotificationHubClient. CreateClientFromConnectionString(connString, name);

var toast =@”...<text id=‘1’>”“AFC Ajax defeats FC Twente 3-0”“</text>...”;

await hub.SendWindowsNativeNotificationAsync(toast);

Page 16: Delivering Millions of Push Notifications in Minutes

DemoNotification Hubs with .NET BackendNotification Hubs from Console App

Page 17: Delivering Millions of Push Notifications in Minutes

Per-Platform Registrations Aren’t That Great

Separate registration API for each platformSeparate payload for each platform

But: More control over push customization

Page 18: Delivering Millions of Push Notifications in Minutes

Template Registrationhub.wns.createToastText01Registration( request.body.channelUri, [ ‘sports’, request.user.userId ], { text1: ‘$(breakingnews)’ }, function (error, registration) { ... });hub.apns.createTemplateRegistration( request.body.deviceToken, [ ‘sports’, request.user.userId ], { aps: { alert: ‘$(breakingnews)’ } }, function (error, registration) { ... });

Page 19: Delivering Millions of Push Notifications in Minutes

Registration

Template Channel URI / Device Token

Device Type

12345678… {“aps”:{“alert”:”$(breakingnews)”}} abcd 12f0 … iOS

45678901… {“data”:{“message”:”$(breakingnews)”}} 556a432f… Android

78901234… <?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"><wp:Toast><wp:Text1>Breaking news</wp:Text1><wp:Text2>$(breakingnews)</wp:Text2></wp:Toast></wp:Notification>

https://live... Windows Phone

34567890… <toast><visual><binding template="ToastText02"><text id="1">Breaking news</text><text id="2">$(breakingnews)</text</visual></toast>

https://live... Windows 8

Page 20: Delivering Millions of Push Notifications in Minutes

Template Pushhub.send( [ ‘sports’, ‘news’ ], { breakingnews: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error, outcome) { ... });

Page 21: Delivering Millions of Push Notifications in Minutes

DemoTemplate Registrations

Page 22: Delivering Millions of Push Notifications in Minutes

Questions?Sasha Goldshteinblog.sashag.net@goldshtn

Page 23: Delivering Millions of Push Notifications in Minutes

Laat ons weten wat u vindt van deze sessie! Vul de evaluatie in via www.techdaysapp.nl en maak kans op een van de 20 prijzen*. Prijswinnaars worden bekend gemaakt via Twitter (#TechDaysNL). Gebruik hiervoor de code op uw badge.

Let us know how you feel about this session! Give your feedback via www.techdaysapp.nl and possibly win one of the 20 prizes*. Winners will be announced via Twitter (#TechDaysNL). Use your personal code on your badge.

* Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are examples

Page 24: Delivering Millions of Push Notifications in Minutes

Recommended