繁体   English   中英

Parse.com推送通知滞后和重复

[英]Parse.com push notifications lags and duplications

两天前,我集成了解析推送通知,并且运行良好。 今天,我进行了更多测试,并且有很大的滞后,例如解析通知是在30分钟之后而不是前几天的5秒之后发出的。

另外,我有4台设备,我收到了11个“已发送的推送”,而不是4个。经过一会儿的测试,它开始正常工作,只有4个“已发送的推送”,并且最多一分钟而不是30分钟。

另外,我在开发人员设备上的相同推动次数是我的5倍,在该设备上我经常安装和卸载应用程序,而在其他开发设备上则是4次,因此总和为11。

解析延迟是否存在已知问题? 我需要最多一分钟的回复。 我虽然这是可靠的服务。 是暂时的情况还是正常?

每次卸载并安装应用程序时,都会得到一个新的安装对象。 不幸的是,旧的Installation对象永远不会消失。 您需要做的是为设备使用一些唯一的标识符,然后更新安装(如果存在)。

例如,假设您正在尝试在Android上执行此操作。 在您的应用程序中,您可以获得设备的ANDROID_ID并将其保存到安装中:

ParseInstallation.getCurrentInstallation().put("uniqueId",
                Settings.Secure.getString(getApplicationContext().getContentResolver(),
                        Settings.Secure.ANDROID_ID));

然后,您可以拥有每次保存新安装都会触发的云功能:

Parse.Cloud.beforeSave(Parse.Installation, function(request, response) {
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.Installation);
query.equalTo("uniqueId", request.object.get("uniqueId"));
query.first().then(function(duplicate) {
    if (typeof duplicate === "undefined") {
        console.log("Duplicate does not exist,New installation");
        response.success();
    } else {
        console.log("Duplicate exist..Trying to delete " + duplicate.id);
        duplicate.destroy().then(function(duplicate) {
            console.log("Successfully deleted duplicate");
            response.success();
        }, function() {
            console.log(error.code + " " + error.message);
            response.success();
        });

    }
}, function(error) {
    console.warn(error.code + error.message);
    response.success();
});
})

PS我已经使用该功能很长时间了,不记得从哪里得到它,但是我自己没有写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM