autopush.router.fcm

FCM Router

class autopush.router.fcm.FCMRouter(conf, router_conf, metrics)[source]

FCM Router Implementation

Note: FCM is a newer branch of GCM. While there’s not much change required for the server, there is significant work required for the client. To that end, having a separate router allows the “older” GCM to persist and lets the client determine when they want to use the newer FCM route.

__init__(conf, router_conf, metrics)[source]

Create a new FCM router and connect to FCM

register(uaid, router_data, app_id, *args, **kwargs)[source]

Validate that the FCM Instance Token is in the router_data

route_notification(notification, uaid_data)[source]

Start the FCM notification routing, returns a deferred

_route(notification, router_data)[source]

Blocking FCM call to route the notification

_error(err, status, **kwargs)[source]

Error handler that raises the RouterException

_process_reply(reply, notification, router_data, ttl)[source]

Process FCM send reply