为什么苹果推送通知服务有时会给我错误500?
我有一个node.js项目,我用于应用程序的后端,我必须发送推送通知到android和ios,事情是,APNS有时会给我一个错误500试图发送通知。为什么苹果推送通知服务有时会给我错误500?
下面是通常的回应:
{ sent: [],
failed: [ { device: '<device_id>',
status: '500',
response: { reason: 'InternalServerError' } } ]
我读,如果你在同一时间发送给许多APNS可以拒绝连接,事情是,我通常不发那么多,像最多每秒1个通知。
我使用node-apn,heres发送通知的代码。
function sendIosNotification(deviceTokens,body,data,musico) {
var notification = new apn.Notification();
if (musico) {
notification.topic = "<name_goes_here>.musico";
} else {
notification.topic = "<name_goes_here>.cliente";
}
notification.alert = body;
notification.badge = 1;
notification.sound = "dong.aiff";
notification.payload = data;
apnProvider.send(notification, deviceTokens)
.then((response) => {
console.log(response);
console.log(response.failed);
});
}
它的工作原理,我把它安装在一个测试服务器,但是当我举个例子,保留一夜,第二天只给了我错误500,通常通过重新启动节点服务器自我修复,但这在生产中不会发生。有什么我可以做的,以解决这个问题,是APNS问题还是我在做什么?
编辑:我使用这个NPM包https://www.npmjs.com/package/apn
我的Pushy主要作者,推送通知库的Java。我无法与你所使用的图书馆的具体内容进行权威交流,但可以对一般的APNs充满信心地发表评论。
这听起来像是一个上游的bug;在任何情况下,APNs服务器都不应该发送InternalServerError
而不是更具体的内容(例如“过期的认证令牌”或“太多的消息”); InternalServerError
肯定表明苹果方面出了问题。我强烈的建议是file a bug report with Apple;我认为这不是您可以解决的问题,也可能是apn
包的作者。
似乎是这样,这是前一段时间,从那时起我已经停止了这个项目。但是现在我在正在进行的项目中使用这段代码,我会看看这是否会再次发生并收集数据以通知苹果。感谢您的建议:) – Mockingguy
有同样的问题 –
也许你已经修复它? –
它一直在发生,我似乎无法找到导致它的原因。因为那个项目有点死了我从来没有修好它,我稍后再看看它,看看我能找到什么,如果你发现它,我会永远感激。 – Mockingguy