Windows Azure 通知中心作为 Windows Azure 管理门户的一项增强功能,已在近期发布,它提供了一个通用 API,能够向使用 Windows8 和 iOS 等设备平台构建的应用程序发送推通知。据 Microsoft 消息,他们不久便会添加对 Android 和 Windows 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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论