Windows Azure 通知中心(Notification Hubs)提供通用 API

  • Anand Narayanaswamy
  • 赵震一

2013 年 2 月 1 日

话题:Windows AzureiOS语言 & 开发

Windows Azure 通知中心作为Windows Azure 管理门户的一项增强功能,已在近期发布,它提供了一个通用 API,能够向使用Windows8iOS等设备平台构建的应用程序发送推通知。据 Microsoft 消息,他们不久便会添加对AndroidWindows Phone的支持。

向通知中心注册时,可以为每个用户指定一定数目的标签,Microsoft 通过这种方式优化了通知中心,从而在“一个单独的消息发送到通知中心时触发上百万的推送通知”。

这些标签由应用程序特定的字符串组成,例如用户 ID 和股票代码,这样便不再需要存储并管理设备句柄,也不需要针对每个用户实现各种设备的通知路由信息。此外,局部路由机制允许你将通知消息路由并传递给用户,而不必构建自己的路由基础设施。Windows Azure 通知中心可用于虚拟机中的服务器应用,这些虚拟机以基础设施即服务(Iaas)的方式提供,可以是包含云服务或网站的 Windows 或 Linux 系统。

Microsoft 服务器和工具业务的公司副总裁Scott Guthrie说:“通知中心可以大幅简化推送通知逻辑并会使应用具有更好的伸缩性”。

为了在 Windows Azure 管理门户中创建新的通知中心,你需要定位到应用服务(App Services) 目录,选择服务总线通知中心(Service Bus Notification Hub)这一项。一旦创建成功,你将会看到已注册、已推送、已传递以及那些无法送达收件人的设备的数目。

通过单击管理门户配置(Configure)标签页,可以将Microsoft Windows 通知系统Apple 推送通知服务 (APNS) 注册到通知中心。注册成功后,你可以通过关联标签页开启自动过滤,这样便能将任意客户端应用或设备注册到通知中心。一旦完成了这个过程,你将可以使用最少的代码向你的用户广播消息。

Claus Nielsen 提出了下面的问题:

真是好消息啊,Scott。但是 Windows 7 在推送通知和平滑串流(smooth streaming)这些领域将会有什么动作?

服务总线的项目经理 Elio Damaggio 评论说:

关于 Windows 7 支持推送功能这个话题我想说,通知中心这个功能是为了将通知直接推送到操作系统,为了支持这种能力的平台而设计的。(例如像 Windows 8、Windows Phone、Android 和 iOS 这样的移动平台) 你可以使用服务总线主题(Service Bus Topics)将消息推送到某个运行的应用(Windows 7 或其他)。正如你所指出的,服务总线主题在处理超过 2000 的订阅时必须要进行分片,或者使用 SignalR (http://signalr.net/),后者已经被设计用于部署到使用服务总线的大规模配置中。

Tomasz Wisniewski 想了解 Windows Azure 移动服务及其推送通知与 Elio 所评论的通知中心之间是什么关系。

通知中心不会替代 Windows Azure 移动服务中的推送功能,只是对它的一个补充。任何移动服务后端都可以快速地使用通知中心,添加大规模的广播能力和标签支持。

原文链接Windows Azure Notification Hubs with Common API


感谢孙镜涛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

Windows AzureiOS语言 & 开发