Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅将Azure Mobie服务.Net后端用于推送_C#_Azure_Push Notification_Azure Mobile Services - Fatal编程技术网

C# 仅将Azure Mobie服务.Net后端用于推送

C# 仅将Azure Mobie服务.Net后端用于推送,c#,azure,push-notification,azure-mobile-services,C#,Azure,Push Notification,Azure Mobile Services,我正在为push和许多其他工作制作Azure后台工作人员角色 与发送原始JsonPayload字符串不同,Azure移动服务(又称ZUMO)库为推送提供了更为具体和方便的功能 例如,下面介绍如何发送GCM推送 GooglePushMessage message = new GooglePushMessage(); message.Data.Add("greeting", "Hello World!"); message.DelayWhileIdle = true; message.TimeToL

我正在为push和许多其他工作制作Azure后台工作人员角色

与发送原始JsonPayload字符串不同,Azure移动服务(又称ZUMO)库为推送提供了更为具体和方便的功能

例如,下面介绍如何发送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也很有用

我的问题是,
服务
需要初始化,但很难找到应该提供哪些配置。Azure portal自动生成的示例源提供了大量的
MS\uz
设置,这些设置在web.config中可能对我有用,也可能对我不可用

服务
的基本初始化代码可能与下面类似,但如何正确执行

ConfigOptions options = new ConfigOptions();
HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options));
ApiServices Services = new ApiServices(config);

您可以从NuGet使用服务总线库。它有一个命名空间,用于管理通知中心和使用特定于平台的通知类或更通用的方法(用于模板)发送通知。

我承认,它目前没有那么多好的助手方法,但在所有方面都比JSON字符串好一点

我建议使用带有通知中心的模板,特别是如果您希望有多个客户端平台,因为它可以让您发送原始数据,并让客户端通过其模板指定如何接收数据和显示数据。例如,您可以让Android将消息作为警报处理,然后使用IOS在通知中心显示徽章或放置通知。在Windows/WinPhone上,您可以根据发送到通知中心的相同原始数据执行磁贴更新或toast

Azure移动服务在很多情况下只能在Azure移动服务中运行,因为它们的运行时为您注入了一些此类服务。您可以让它运行,但它原本/打算在Azure移动服务中运行。这是增值的一部分


总之,您可以设置Azure移动服务,让它只承载推送通知功能。然后您可以通过自定义API与之交互(只需添加一个常规ASP.NET Web API控制器)调用推送通知。或者将与推送通知相关的计划工作放在移动服务计划作业中,而不是工作人员角色中。

我喜欢您最后一个想法,即使用简单的AMS来利用轻松推送集成。但是如果您使用节点/JavaScript后端,则调用REST API更容易,而不需要任何额外的支持WebAPI工作。