Уведомления Apple APNS доставляются не по порядку. одно предыдущее push-уведомление отправляется вместо текущего
Я настроил свои push-уведомления с помощью библиотеки apn node.
Я использую лямбда-функцию AWS для отправки уведомления, и она вызывается из другой лямбда-функции с использованием события в качестве типа вызова следующим образом:
var pushPayload = { "users": users, "message": message };
var pushParams = {
FunctionName: 'function-name',
InvocationType: 'Event',
LogType: 'Tail',
Payload: JSON.stringify(pushPayload)
};
lambda.invoke(pushParams, function (err, data) {
if (err) {
callback(error);
} else {
callback(null, event.arguments.input);
}
});
и функция отправки лямбда-уведомления:
var options = {
token: {
key: "key",
keyId: keyId,
teamId: teamId
},
production: true
};
var message = event.message;
var users = event.users;
var apnProvider = new apn.Provider(options);
var iterationComplete = false;
for (var j = 0; j < users.length; j++) {
if (j === (users.length - 1)) {
iterationComplete = true;
}
var deviceToken = users[j].user_device_token;
var notification = new apn.Notification();
notification.alert = message;
notification.contentAvailable = 1;
notification.topic = "com.example.Example";
context.callbackWaitsForEmptyEventLoop = false;
apnProvider.send(notification, [deviceToken]).then((response) => {
if (iterationComplete) {
context.succeed(event);
}
});
}
Иногда уведомления не синхронизируются, и когда я отправляю сообщение, которое отправляет push-уведомление, приходит уведомление от предыдущего сообщения. Не уверен, почему это происходит или как это исправить.