30-40 секундная задержка при отправке уведомлений iOS с помощью AWS SNS - PullRequest
0 голосов
/ 10 декабря 2018

Мы используем 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'
)
...