为什么苹果推送通知服务有时会给我错误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

+0

有同样的问题 –

+0

也许你已经修复它? –

+0

它一直在发生,我似乎无法找到导致它的原因。因为那个项目有点死了我从来没有修好它,我稍后再看看它,看看我能找到什么,如果你发现它,我会永远感激。 – Mockingguy

我的Pushy主要作者,推送通知库的Java。我无法与你所使用的图书馆的具体内容进行权威交流,但可以对一般的APNs充满信心地发表评论。

这听起来像是一个上游的bug;在任何情况下,APNs服务器都不应该发送InternalServerError而不是更具体的内容(例如“过期的认证令牌”或“太多的消息”); InternalServerError肯定表明苹果方面出了问题。我强烈的建议是file a bug report with Apple;我认为这不是您可以解决的问题,也可能是apn包的作者。

+0

似乎是这样,这是前一段时间,从那时起我已经停止了这个项目。但是现在我在正在进行的项目中使用这段代码,我会看看这是否会再次发生并收集数据以通知苹果。感谢您的建议:) – Mockingguy