【问题标题】:How do Asp.net backend and Web API web service hosted on Azure send push notification to mobile app?Azure 上托管的 Asp.net 后端和 Web API Web 服务如何向移动应用发送推送通知?
【发布时间】:2014-06-23 06:13:41
【问题描述】:

我正在为 Android 和 iPhone 构建一个移动应用程序。我将移动端外包给了一家应用公司,而我自己使用 asp.net 开发后端和 Web 服务部分并将它们托管在 Azure 上。 Web 服务使用 Web API 2.0 开发,并作为网站部署到 Azure。后端使用 asp.net Web 表单开发,并作为网站部署到 Azure。

移动用户会收到一些消息有两种情况: (1) 当一些移动用户发布一些消息时,其他移动用户会收到它们。 (2) 在后台,如果管理员发布消息,所有移动用户都会收到。

目前在我的后端和网络服务中,当移动用户发布消息或管理员发布消息时,我只是更新数据库表以保存该消息。我以为移动端会一直拉数据库表并获取最新消息-直到今天。今天,应用公司告诉我,我需要将这些消息推送到手机上。他建议使用一些第三方服务来实现这一点。

然后我检查了 Azure 文档,似乎他们的服务中内置了推送功能,所以我不需要去第三方服务。但我很困惑,我看到有“云服务”,有“移动服务”,还有“服务总线-通知中心”。我应该使用哪一个来使我的后端和 Web 服务能够向移动设备发送推送通知?我应该如何在 Visual Studio Express 2013 中修改我现有的后端和 Web 服务项目?我是否仍将它们作为网站部署到 Azure?

消息,我不是指短信,我是指一些文本数据。

【问题讨论】:

  • 您正在寻找通知中心。云服务是在 Azure 上构建和托管应用程序的一种方式(本质上是 Azure 网站的重量级版本),而移动服务实际上是一个专注于抽象移动应用程序后端存储的功能集合(除其他外) )。鉴于您已经构建了后端服务,我会使用通知中心。 This answer 将为您提供有关该选择的更多详细信息。

标签: android ios asp.net mobile azure


【解决方案1】:

鉴于您已经在 Android 应用程序和后端服务上投入了一些合理的开发时间,听起来您正在寻找通知中心。通知中心专为跨一个或多个移动平台向个人用户和用户组发送推送通知而设计。

正如我在评论中所建议的,云服务是一种在 Azure 上托管您的应用程序的方法(出于您的目的,它将提供比 Azure 网站更重的替代方案,并具有改进的 SLA),而移动服务提供了一组库和用于抽象与应用程序的服务器端数据交互的 API。

要使用通知中心发送推送通知,您需要做一些事情(在链接文档中有详细描述):

  1. 转到门户并为自己创建一个新的通知中心
  2. 通过 Google Cloud Console 创建一个 Google Cloud Messaging Project(Azure 将使用它来将您的消息传输到相关的 Android 设备)
  3. 更新您的后端服务以使用通知中心发送消息
  4. 修改您的 Android 应用程序以使用关联的 Azure 消息传递库来接收您的推送通知

我讨厌直接链接到文档,但开始使用此功能的最佳方式是通过 Azure 文档中的以下教程: http://azure.microsoft.com/en-us/documentation/articles/notification-hubs-android-get-started/。这涵盖了您需要对 Android 应用程序以处理推送通知和后端服务以发送它们进行的基本更改。

您仍然可以将服务器端组件部署到 Azure 网站。

请注意,通过通知中心发送消息带有价格标签,尽管有一个免费套餐,每月限制您使用 500 台设备和 100,000 条推送通知,如http://azure.microsoft.com/en-us/pricing/details/notification-hubs/ 中所述。

编辑:以下是使用通知中心向个人用户发送消息的示例: http://azure.microsoft.com/en-us/documentation/articles/notification-hubs-aspnet-notify-users/

【讨论】:

  • 非常感谢。我阅读了您指出的文件,但我仍然对这个标签的事情感到困惑。我需要向选定数量的用户发送消息(而不是向所有人广播),它可以是任意数量的用户。如果一条消息需要发送给三个用户(也可以是 30 个用户,移动用户可以手动选择要发送消息的对象),我该怎么做?我想我需要使用每个用户的电话号码(或用户名)作为标签?这里真的没有固定组(如果有固定组,我想我可以给每个组分配一个标签)。
  • 我发布了一个链接,似乎可以证明您的建议:)
猜你喜欢
  • 1970-01-01
  • 2015-08-27
  • 2017-06-08
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多