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

时间:2014-02-18 11:34:57

标签: asp.net azure apple-push-notifications pushsharp azure-notificationhub

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

//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上的推送令牌?我必须使用通知中心吗? (我不使用VM)欢迎使用任何简单的方法,首选纯ASP.NET /PushSharp方法,因为我不需要更改整个代码库。

1 个答案:

答案 0 :(得分:0)

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

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