如何将 ASP.NET/PushSharp 项目转换为 Azure 以发送推送通知?

How to convert an ASP.NET/PushSharp project to Azure to send push notifications?

我一直在使用 ASP.NET 和 PushSharp 使用以下简单代码(在证书配置等之后)向我的 iOS 应用程序客户端发送推送通知:

1
2
3
//ASP.NET + PushSharp
AppleNotification notification = new AppleNotification(PushToken).WithAlert(message);
broker.QueueNotification<AppleNotification>(notification);

这在运行经典 IIS/ASP.NET 的隔离主机上非常有效,但现在我正在转向 Windows Azure。当我在 Windows Azure 上尝试此代码时,通知有时无法发送,重新启动网站(标准模式)会有所帮助。但是,由于这是一种不可靠的方法,我决定迁移到 Azure 的 Notification Hub 服务。我已经创建了集线器,上传了我的证书,开始编码,但我找不到与我之前的代码等效的代码。我不需要向所有用户广播消息,我需要向单个设备发送推送通知,因为我有推送令牌。我看过 Windows Azure ServiceBus Push Notifications APNS Architecture,但答案中提供的链接非常混乱,我无法理解。我怎样才能简单地将消息推送到 Windows Azure 上的推送令牌?我必须使用通知中心吗? (我不使用虚拟机)欢迎使用任何简单的方法,首选基于 ASP.NET/PushSharp 的方法,因为我不需要更改整个代码库。


我不确定 PushToken 是什么类型的对象。通知中心的工作方式是,而不是提供一对一的消息传递模型(您必须识别消息的每个接收者,无论是通过通道、设备令牌还是注册 ID),它提供了一个标签 -基于模型。但是,这并不意味着标签不能对单个用户唯一,实际上您几乎可以将任何令牌用作标签。

这是一种新模型,与 Azure 移动服务或直接使用 APNS 不同,因此不太可能直接从现有代码移植。但是,在我看来,一旦您了解了标签,通知中心模型就很简单。它支持本地负载(由发送通知的服务器构建)和模板负载(模板由接收设备构建并在注册时提供给通知中心,然后模板中的参数由服务器在注册时提供将通知发送到模板)。