有没有办法使用 Webjob SDK 通过 NotificationHub 发送推送通知?
Is there a way to send Push Notification through a NotificationHub with the Webjob SDK?
我对使用 Webjob SDK 还很陌生,我正在尝试使用带有 SDK 3 的 Webjob 将通知推送到 NotificationHub。
我一直在尝试使用Microsoft.Azure.Webjobs.Extensions.NotificationHub。它似乎不适用于 Webjob SDK 3,所以我一直在使用 SDK 2..
Programme.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
namespace WJNotificationHub
{
class Program
{
static void Main()
{
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
config.UseNotificationHubs();
var host = new JobHost(config);
host.RunAndBlock();
}
}
}
Functions.cs
using System.IO;
using Microsoft.Azure.NotificationHubs;
using Microsoft.Azure.WebJobs;
using Newtonsoft.Json;
namespace WJNotificationHub
{
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log, [NotificationHub] out Notification notification)
{
log.WriteLine(message);
notification = new GcmNotification(message.ToGcmPayload());
}
}
public static class PlatformNotificationsExtensions
{
public static string ToGcmPayload(this string message)
{
var gcmPayloadModel = new
{
data = new
{
message = message
}
};
return JsonConvert.SerializeObject(gcmPayloadModel);
}
}
}
使用此代码我有以下异常:
Exception while executing function: Functions.ProcessQueueMessage
Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: Functions.ProcessQueueMessage ---> System.InvalidOperationException : Exception binding parameter 'notification' ---> System.NullReferenceException : La référence d'objet n'est pas définie à une instance d'un objet.
还有没有办法用 SDK 3 做到这一点?
System.InvalidOperationException : Exception binding parameter 'notification'
更新 Azure Function and Web Jobs Tools
版本并重启。
Also is there a way to do it with SDK 3 ?
简而言之没有。
Notification Hub only support 1.x
while Webjob SDK 3支持.NETStandard 2.0
。
代码可以参考这个article.
我对使用 Webjob SDK 还很陌生,我正在尝试使用带有 SDK 3 的 Webjob 将通知推送到 NotificationHub。
我一直在尝试使用Microsoft.Azure.Webjobs.Extensions.NotificationHub。它似乎不适用于 Webjob SDK 3,所以我一直在使用 SDK 2..
Programme.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
namespace WJNotificationHub
{
class Program
{
static void Main()
{
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
config.UseNotificationHubs();
var host = new JobHost(config);
host.RunAndBlock();
}
}
}
Functions.cs
using System.IO;
using Microsoft.Azure.NotificationHubs;
using Microsoft.Azure.WebJobs;
using Newtonsoft.Json;
namespace WJNotificationHub
{
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log, [NotificationHub] out Notification notification)
{
log.WriteLine(message);
notification = new GcmNotification(message.ToGcmPayload());
}
}
public static class PlatformNotificationsExtensions
{
public static string ToGcmPayload(this string message)
{
var gcmPayloadModel = new
{
data = new
{
message = message
}
};
return JsonConvert.SerializeObject(gcmPayloadModel);
}
}
}
使用此代码我有以下异常:
Exception while executing function: Functions.ProcessQueueMessage
Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: Functions.ProcessQueueMessage ---> System.InvalidOperationException : Exception binding parameter 'notification' ---> System.NullReferenceException : La référence d'objet n'est pas définie à une instance d'un objet.
还有没有办法用 SDK 3 做到这一点?
System.InvalidOperationException : Exception binding parameter 'notification'
更新 Azure Function and Web Jobs Tools
版本并重启。
Also is there a way to do it with SDK 3 ?
简而言之没有。
Notification Hub only support 1.x
while Webjob SDK 3支持.NETStandard 2.0
。
代码可以参考这个article.