Azure 移动服务的一些 Apple 推送通知未到达

Posted

技术标签:

【中文标题】Azure 移动服务的一些 Apple 推送通知未到达【英文标题】:Some Apple Push Notifications from Azure Mobile Services not Arriving 【发布时间】:2013-08-01 21:17:06 【问题描述】:

我已经为此苦苦挣扎了几天,并且被卡住了。我正在使用 Azure 移动服务并定义了两个调度程序脚本。一个非常简单,只需向用户 ID #1 的所有设备令牌发送测试推送通知:

function SendTestNotification() 

    sendPushNotification(1, 'SendTestNotification @ ' + new Date());

    function sendPushNotification(userId, body) 
        var users = tables.getTable('NotificationTokens');
        users.where(
            User_Id: userId
        ).read(
            success: function(tokens) 
                tokens.forEach(function(token) 
                    var alert = 
                        badge: 0,
                        alert: body,
                        sound: 'default'
                    ;

                    push.apns.send(token.Token, alert,
                    
                        error : function(err) 
                            console.error(err);
                        
                    );
                );                
            ,
            error: function(error)  
                console.error(error)
                return;                
            
        );
    

我有第二个更精细的调度程序脚本,它包含我的应用程序的实际推送通知逻辑。它包含与上面显示的完全相同的 sendPushNotification() 函数。第二个脚本还包含一个额外的调用,用于向我发送“测试”通知。

总而言之,通过设置和安排这两个脚本,我的 ios 设备应该每 15 分钟总共收到 3 个推送通知。我也给它们加上了时间戳,以便它们显示从服务器发送通知的时间。

但是,当我手动运行这些脚本或让它们每 15 分钟自行运行一次时,我几乎不会收到所有通知。有时我什么也得不到。有时我只收到第一个测试通知。有时我会收到第一个测试通知,即“真实”通知,但不会收到第二个测试通知(它应该由发送“真实”通知的完全相同的代码发送)。

我检查了门户上的日志,没有从 APNS 返回的错误。我知道日志记录正在工作,因为我过去曾看到无效设备令牌的错误。

我还应该声明,我已经使用简单的 C# 应用程序通过 APNS 向这些设备发送推送通知,绝对没有问题。

谁能提供任何建议或看看我可能做错了什么?我有一个等待审核的应用程序,我很乐意解决这个问题。

【问题讨论】:

所以这是我第二次花了一天的时间来解决从 Azure 发送推送通知的间歇性问题,这些问题在几个小时后突然工作而完全没有代码更改。人们在生产中使用这些东西吗? 【参考方案1】:

上次发生这种情况时,我将规模从免费更改为基本,并发送了所有通知。

您说没有错误,但请记住,如果发生错误,您必须从停止的点重新开始,因为一旦发生错误,apns 就会关闭连接。

【讨论】:

以上是关于Azure 移动服务的一些 Apple 推送通知未到达的主要内容,如果未能解决你的问题,请参考以下文章

没有 Azure 移动项目的 Azure 推送通知?

Apple 推送通知未发送

Azure 通知中心和 Apple APNS 推送通知取消注册设备

推送通知未注册请求的标签

推送通知 Azure 移动服务(自托管)

如何在 iOS 的 Azure 移动应用通知中心注册目标推送通知