gpt4 book ai didi

Azure 推送通知随机工作

转载 作者:行者123 更新时间:2023-12-03 04:34:15 25 4
gpt4 key购买 nike

我有一个移动应用程序,它使用后端服务注册到 Azure 推送通知。直到 4 天前,一切都运行良好,但大多数通知都没有发送到应用程序。

我正在使用服务总线队列和 WebJob 发送通知,我可以看到 Android 成功执行,但大多数情况下通知不会发送到应用程序,并且通知状态等于已入队且成功等于 0 且失败等于0

我将 Microsoft.ServiceBus 更新到最新版本,但这并没有解决问题。

最后一件事,Apple 通知曾经成功工作,但现在抛出异常“远程服务器返回错误:(400) 错误请求。提供的通知有效负载无效

有人遇到类似的问题吗?

最佳答案

我在通过 Azure 通知中心向 iOS 设备推送通知时遇到了同样的问题。在集线器上调用“SendAppleNativeNotificationAsync”方法时,我收到了相同的错误消息。

我通过替换“\”和“'”来确保消息中没有非法字符。在阅读了一些有关通知最大限制问题的帖子后,我们决定将消息大小限制为 150 个字符(这是一个神奇的数字,我们没有进行任何研究来找出推送通知消息到底允许有多大) .

我还更改了 JSON 负载的创建方式,现在使用 Newtonsoft.Json.Linq 使用负载创建 JSON 对象。我之前为有效负载创建了一个简单的 json 字符串,如下所示:

var apnsMessage = "{\"aps\":{\"alert\":"+message+", \"sound\" : \"default\", \"badge\" : 1}}";

现在,我的 JSON 对象创建如下:

var jsonPayload = JObject.FromObject(new
{
aps = new { alert = message.Replace("\"", "").Replace("'", "") },
sound = "default",
badge = 1
});

我发送这样的通知:

await Hub.SendAppleNativeNotificationAsync(jsonPayload.ToString());

希望这对您(或遇到相同问题的任何其他人)有帮助:)

编辑:这是一个用于修剪/截断字符串的简单助手:)

 private static string GetTrimmedAndTruncatedString(string source, int length)
{
return source.Length > length ? source.Substring(0, length) + "..." : source;
}

/伊莎

关于Azure 推送通知随机工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30050058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com