我正在评估使用Azure移动服务,Parse和Urban Airship的推送通知服务.
其中一个标准是该服务是否为应用程序提供了一种方式来注册定制的用户ID或别名,然后在调用服务以向个人发送推送通知时可以轻松使用该用户ID或别名.这使我们的后端服务无需使用查找表为我们提供给定用户的服务注册ID.
Urban Airship具有别名功能:http://docs.urbanairship.com/connect/connect_audience.html#aliases
Parse有一个复杂的Installation对象,其行为类似于字典,因此可以向其添加其他值(如UserId).当调用Parse服务发送推送通知时,可以使用查询来指定将接收消息的用户:https: //www.parse.com/docs/push_guide#sending-queries/REST
Azure移动服务中是否存在等效功能?
使用移动服务,您需要在表中跟踪用户到令牌/通道URI /注册ID关联,这比您需要的工作更多.但是,Windows Azure的另一个功能是Notification Hubs,可以满足您的需求(以及更多).使用通知中心,从客户端您说"我想注册通知中心,这里有一些标签,您可以用来向我推送信息".这些标签可以是您想要的任何标签,包括用户ID.稍后,您可以告知您的通知中心推送给注册了某个标签的任何人.这将允许您将通知推送到特定用户已注册的任何设备.
流程看起来像这样:
注册推送提供商(APNS,GCM,MPNS,WNS)
将令牌与标签一起发送到通知中心(例如用户的ID)
触发推送到特定标签(即用户ID)
通知中心将处理带有标记的所有设备的推送(同样,他们的用户ID)
Notification Hubs具有WinPhone,WinStore,iOS和Android的客户端SDK,因此从客户端使用非常简单.就触发推送而言,Notification Hubs公开了一个可以与之通信的REST API,有一个.NET SDK,一个Node SDK,以及一个非官方的Java SDK.您甚至可以使用来自移动服务的Node SDK,这使得将身份验证(即获取用户ID)与数据存储和推送通知相结合变得非常容易.它还具有许多其他功能,如模板化推送通知,因此您可以让客户端应用程序指示它应该如何接收某种类型的推送,而不是根据您要推送的设备操作系统指定不同的有效负载.