我正在为推送和许多其他工作制作Azure后台工作者角色。
与发送原始JsonPayload字符串的Azure Push Notification Hub example不同,Azure移动服务(a.k.a ZUMO)库为推送提供了更多具体和方便的功能。
例如,this document介绍了如何发送GCM推送,如下所示。
GooglePushMessage message = new GooglePushMessage();
message.Data.Add("greeting", "Hello World!");
message.DelayWhileIdle = true;
message.TimeToLiveInSeconds = 60 * 60 * 2;
message.Add("myKey1", "myValue");
await Services.Push.SendAsync(message);
简而言之,我想使用GooglePushMessage : Microsoft.WindowsAzure.Mobile.Service.Notifications.IPushMessage
类来发送推送。它看起来对iOS和WNS也很有用。
我的问题是,Services
需要初始化,但很难找到应该给出的配置。 Azure门户中自动生成的示例源提供了许多MS_
设置,这些设置在web.config中可能对我有用,也可能无法使用。
Services
的基本初始化代码可能类似如下,但如何正确执行?
ConfigOptions options = new ConfigOptions();
HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options));
ApiServices Services = new ApiServices(config);
答案 0 :(得分:1)
您可以使用NuGet的服务总线库。它具有一个命名空间,用于管理通知中心和使用特定于平台的通知类或更通用的方法发送通知(用于模板 http://msdn.microsoft.com/en-us/library/azure/microsoft.servicebus.notifications.aspx
我承认它目前没有那么多好的帮助器方法,但它比一般的JSON字符串要好一些。
我建议使用带有通知中心的模板,特别是如果您希望拥有多个客户端平台,因为它可以让您发送原始数据并让客户通过他们的模板指示他们希望如何接收数据和显示它。例如,您可能让Android将消息处理为警报,然后让IOS显示徽章或在通知中心发出通知。在Windows / WinPhone上,您可以执行磁贴更新或从您发送到通知中心的相同原始数据驱动的所有内容。
Azure移动服务的内容在很多情况下只能在Azure移动服务中托管,因为它们的运行时会为您注入一些服务。你有可能让它工作,但它是/打算在Azure移动服务中托管。这是增值的一部分。
所有这一切,您可以设置Azure移动服务,并让它只托管推送通知方面。然后,您可以通过自定义API(只需添加常规ASP.NET Web API控制器)与其进行交互以调用推送通知。或者将与推送通知相关的计划工作放在移动服务预定作业中,而不是工作者角色中。