Reputation: 3893
I am building a mobile app, for both Android and iPhone. I outsourced the mobile end to an app company, while I myself develop the back end and web service part with asp.net and hosted them on Azure. The web service is developed with Web API 2.0, and it is deployed to Azure as a web site. The back-end is developed with asp.net web forms and deployed in to Azure as a web site.
There are 2 cases when a mobile user will receive some messages: (1) When some mobile users post some messages, other mobile users will receive them. (2) In the back end, if an administrator publishes a message, all mobile users will receive it.
Currently in my back end and web service, when mobile user post message or an administrator publishes a message, I just update database table to save that message. I thought the mobile end will keep pulling database table and get the latest message - until today. Today the app company told me I need to PUSH those messages to phones. He suggested some third party service to achieve this.
I then checked Azure documents, it seems they have built-in push function in their service so that I don't need go for a third party service. But I am confused, I saw there is "Cloud Services", there is "Mobile Services", and there is "Service Bus-Notification Hub". Which one should I use to make my back end and web service be able to send push notification to mobile devices? How should I modify my existing back end and web service projects in Visual Studio Express 2013? Do I still deploy them to Azure as web sites?
by message, I don't mean SMS, I mean some text data.
Upvotes: 0
Views: 3052
Reputation: 768
Given that you've already invested some reasonable development time in both the Android Application and your back-end services, it sounds like you're looking for Notification Hubs. Notification Hubs are designed specifically for sending push notifications to both individual users and groups of users across one or more mobile platforms.
As suggested in my comment, Cloud Services is a means of hosting your application on Azure (for your purposes it would offer a heavier-weight alternative to Azure Websites with an improved SLA), and Mobile Services provides a set of libraries and APIs to abstract interacting with your application's server-side data.
To use a Notification Hub to send push notifications you'll need to do a few things (described in detail in the linked documentation):
I hate to link directly to documentation, but the best way to get started with this functionality is via the following tutorial from the Azure documentation: http://azure.microsoft.com/en-us/documentation/articles/notification-hubs-android-get-started/. This covers the basic changes you'll need to make to both your Android application to handle push notifications, and to your back-end service in order to send them.
You'll still be able to deploy your server-side components to Azure Websites.
Note that sending messages via Notification Hub comes with a price tag, though there is a free tier that limits you to 500 devices and 100,000 push notifications per month, as described in http://azure.microsoft.com/en-us/pricing/details/notification-hubs/.
EDIT: Here's an example of using Notification Hub to send messages to individual users: http://azure.microsoft.com/en-us/documentation/articles/notification-hubs-aspnet-notify-users/
Upvotes: 2