Rails:rpush gem不会发送带有--no-error-checks选项的push

时间:2014-07-09 21:39:37

标签: ruby-on-rails ruby push-notification apple-push-notifications

我使用https://github.com/rpush/rpush gem为APNS服务器发送推送通知。它工作正常,但是当我打开rpush进程的--no-error-checks选项时,推送未在设备上传递的消息。但是日志文件没有任何错误。 没有这个选项,过程非常缓慢......我需要发送超过200k的通知。

rpush会出现什么问题?

1 个答案:

答案 0 :(得分:0)

当您禁用错误检查时,您可能会在令牌列表的开头出现一些无效设备令牌的风险,这会阻止随后传递任何有效令牌。您应至少关闭--no-error-checks一次,以识别无效的设备令牌并将其从数据库中删除。确保所有设备令牌有效后,您可以安全地重新启用--no-error-checks

  

如果你发现通知没有通过,但你得不到   反馈或验证问题,检查rpush日志中的EPIPE错误   和重新连接。偶尔会有失误,但如果你   每次请求都得到一个,这意味着Apple正在放弃   可以发送批次其余部分之前的连接。

     

最有可能的解释就是你要发送一个   沙箱令牌到生产服务。如果你的话也可能发生   有效载荷太长了,但rpush验证通常会抓住它   第一

     

当然,dev令牌通常是列表中的第一个,所以没有   来了,整个系统看起来很破碎。

     

我不认为可以分辨沙箱之间的区别   和生产令牌,所以唯一的方法是确保避免这种情况   像苹果推荐的那样做,并运行一个单独的实例   每个推送环境的提供者(和/或令牌收集者)。