Delivering Millions of Push Notifications in Minutes

1,593 views
1,227 views

Published on

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.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,593
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
22
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Delivering Millions of Push Notifications in Minutes

  1. 1. 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
  2. 2. Delivering Millions of Push Notifications in Minutes Sasha Goldshtein CTO, Sela Group Microsoft C# MVP, Azure MRS, Azure Insider blog.sashag.net @goldshtn
  3. 3. Typical Push System Diagram Platform Push Provider Your Web Service Database App
  4. 4. Azure Mobile Services is a backend for your mobile apps … that has a free tier … cloud scale … support for all mobile platforms
  5. 5. Mobile Services Push Architecture Microsoft Azure SQL DatabaseNode + Express 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
  6. 6. Azure Notification Hubs … abstract away platform push services … support targeted multi-tag delivery … scale to millions of users … Mobile Services or any other
  7. 7. Notification Hub Push Architecture Microsoft Azure Node + Express backen d 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
  8. 8. Options for Push Notifications Registration Push Through Mobile Service Explicit channel management Mobile Services push module Directly from client to Notification Hub Azure hub module from Mobile Service Azure NuGet package from other backendThrough Mobile Service to Notification Hub
  9. 9. Registration Tags… …are totally up to you! Examples: user:123456 region:Europe sports news conversation:aa412
  10. 10. Per-Platform Registration from Mobile Service hub.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) { ... } );
  11. 11. Direct Registration from Windows 8 Client var channel = await PushNotificationChannelManager. CreatePushNotificationChannelForApplicationAsync(); var hub = new NotificationHub(name, connString); await hub.RegisterNativeAsync(channel.Uri);
  12. 12. Push from Mobile Service hub.wns.sendToastText02( [ ‘sports’, ‘news’ ], { text1: ‘Breaking news’, text2: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error) { ... } );
  13. 13. Push from Mobile Service hub.apns.send ( [ ‘sports’, ‘news’ ], { badge: 1, alert: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error) { ... } );
  14. 14. Push from Other .NET Backend var hub = NotificationHubClient. CreateClientFromConnectionString(connString, name); var toast = @‛...<text id=‘1’>‛ ‚AFC Ajax defeats FC Twente 3-0‛ ‚</text>...‛; await hub.SendWindowsNativeNotificationAsync(toast);
  15. 15. Demo Notification Hubs with .NET Backend Notification Hubs from Console App
  16. 16. Per-Platform Registrations Aren’t That GreatSeparate registration API for each platform Separate payload for each platform But: More control over push customization
  17. 17. Template Registration hub.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) { ... } );
  18. 18. 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:T ext1>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></to ast> https://live... Windows 8
  19. 19. Template Push hub.send( [ ‘sports’, ‘news’ ], { breakingnews: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error, outcome) { ... } );
  20. 20. Demo Template Registrations
  21. 21. Questions? Sasha Goldshtein blog.sashag.net @goldshtn
  22. 22. 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

×