This repository has been archived by the owner on Mar 9, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 92
Reflection API
Ian Leitch edited this page Aug 28, 2013
·
4 revisions
The Reflection API aims to provide a means to hook into parts of Rapns execution. Possible uses are custom error notifications, performance and throughput monitoring.
If you have used the Rails generator rails g rapns
you should see the bollow example in your config/initializers/rapns.rb
file.
Rapns.reflect do |on|
# Called with a Rapns::Apns::Feedback instance when feedback is received
# from the APNs that a notification has failed to be delivered.
# Further notifications should not be sent to the device.
on.apns_feedback do |feedback|
end
# Called when a notification is queued internally for delivery.
# The internal queue for each app runner can be inspected:
#
# Rapns::Daemon::AppRunner.runners.each do |app_id, runner|
# runner.app
# runner.queue_size
# end
#
on.notification_enqueued do |notification|
end
# Called when a notification is successfully delivered.
on.notification_delivered do |notification|
end
# Called when notification delivery failed.
# Call 'error_code' and 'error_description' on the notification for the cause.
on.notification_failed do |notification|
end
# Called when a notification will be retried at a later date.
# Call 'deliver_after' on the notification for the next delivery date
# and 'retries' for the number of times this notification has been retried.
on.notification_will_retry do |notification|
end
# Called when an APNs connection is lost and will be reconnected.
on.apns_connection_lost do |app, error|
end
# Called when the GCM returns a canonical registration ID.
# You will need to replace old_id with canonical_id in your records.
on.gcm_canonical_id do |old_id, canonical_id|
end
# Called when an APNs certificate will expire within 1 month.
# Implement on.error to catch errors raised when the certificate expires.
on.apns_certificate_will_expire do |app, expiration_time|
end
# Called when an exception is raised.
on.error do |error|
end
end