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

时间:2013-08-01 21:17:07

标签: ios azure push-notification apple-push-notifications azure-mobile-services

我已经在这几天苦苦挣扎并陷入困境。我使用的是Azure Mobile Services,并定义了两个调度程序脚本。一个非常简单,只需向用户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发送了这些设备推送通知,绝对没问题。

任何人都可以提出任何建议或看看我可能做错了什么吗?我有一个应用程序等待审查,并希望得到这个问题。

1 个答案:

答案 0 :(得分:0)

上次发生这种情况时,我将比例从Free更改为Basic,并且所有通知都已发送。

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