Мы используем AWS SNS и APNS для отправки уведомлений в iOS (Swift) с сервера Ruby on Rails.Уведомления передаются на iOS, но занимают около 30-40 секунд, что неприемлемо для нашего приложения.Мы можем отправлять тестовые уведомления с помощью консоли AWS, которые проходят немедленно, поэтому это не похоже на ошибку iOS.В журналах мы видим, что уведомление попадает в AWS и возвращает ответ 200.Похоже, что задержка между AWS и iOS.Как мы можем сделать так, чтобы эти уведомления проходили быстрее?
notification = {
:aps => {
"mutable-content" => 1,
:category => category,
:sound => "default",
:extra => data
}
}
notification[:aps][:alert] = { :title => title, :body => body } if title
sns_message = {
:APNS_SANDBOX => notification.to_json,
:APNS => notification.to_json
}
config = YAML.load(File.read(Rails.root.join('config', 'aws.yml')))[Rails.env]
sns = AWS::SNS::Client.new(
:access_key_id => config['access_key_id' ],
:secret_access_key => config['secret_access_key'],
:region => config['region' ]
)
sns.publish(
:target_arn => self.arn,
:message => sns_message.to_json,
:message_structure => 'json'
)