Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to setup Azure Notification Hub in C# backend

I'm trying to implement my C# backend's communication with Notification Hub. I've read almost every tutorial about Azure Notification Hub, and I can't find a decent tutorial that explains what actually corresponds to what. I think there are two ways of representing a device (from what I've understood): an Installation and Registration, and Installation seems to be newer and more preferred.

However, when I get into Installation, I get more questions in my mind:

What is InstallationId? Is it something that I create, or something that I get from somewhere, either device or PNS.

Do I need to set up ExpirationTime, or does it default to longest (it says 90 days is the longest)? What if I want it to be longer than 90 days?

What is PushChannel? Is it, just like InstallationId, something that I create, or get from somewhere?

How are templates exactly used?

Out of all these variables, which one is the actual device push token that I get at the client?

I usually don't ask those kind of questions that seek for a tutorial-ish answers and have multiple questions, but I've tried to search everywhere, but the more I search, the more it gets complicated and I don't even know where to start. Any answer would be a good starting point to anyone trying to learn Notification Hubs, just like me.

like image 341
Can Poyrazoğlu Avatar asked Oct 24 '16 06:10

Can Poyrazoğlu


Video Answer


2 Answers

InstallationId is an abstraction on top of device token/key/channel etc. It's a unique id that you create when you 'install' a device (or user if your OS/platform allows separate tokens for multiple users). This is an id you can use to associate tags, templates etc with the device. You create an installation once and then keep the id somewhere in the local storage and then make updates to the installation associated with the id if you need to.

You don't need to explicitly set ExpirationDate. I think in the past tokens on most platforms used to expire, so this was a way to let Notification Hubs know when not to try to push to the token. I believe now it's not the case. So what happens is if Notification Hubs cannot deliver a notification to a device for a number of times, it just deletes the registration by itself.

Has this post on templates been useful?

PushChannel stands for 'The channel URI if registering the installation for WNS; Device Token if registering for APNS.'

Let me know in the comments if I can clarify any of these and I'll update the answer.

like image 184
Nikita R. Avatar answered Oct 04 '22 22:10

Nikita R.


There is actually a 3rd option besides Installation and Notification: DirectSend.

The Direct-Send technique is less of an abstraction than Installation and Notification. With Direct-Send you can send notifications directly to one or more specific devices. Basically you use the actual deviceToken- as in what @NikitaG notes for PushChannel.

If you need to be able to decide specifically when your back-end application pushes to a specific-device-A-but-not-B vs. pushing to a specific-device-B-but-not-A vs. specific-device-A-and-specific-device-B according to some schedule Direct-Send can be enabling.

I'd listed some of the resources discussing Direct-Send at Azure Notification Hubs Send Notification to Specific Device.

like image 38
Howard Hoffman Avatar answered Oct 04 '22 21:10

Howard Hoffman