UnifiedPush Server
  • Documentation
  • GitHub
  • Help

›Running Unified Push

Introduction

  • Overview
  • Useful Terminology
  • Push Notifications
  • How the UnifiedPush Server works
  • Use-cases and scenarios

Running Unified Push

  • Running Unified Push
  • JMS Broker Configuration

Configuring Variants

  • Getting Started
  • Android Variant
  • iOS Variant
  • WebPush Variant

Configuring Clients

  • Android Client
  • iOS Client
  • Webpush Client
  • React Native Client
  • Cordova Client

Unified Push Server SDK

  • Java Sender API
  • Node Sender API
  • RESTful Sender API

Maintaining Unified Push

  • Maintaining Unified Push

JMS Broker Configuration

Usage of JMS in Unified Push

Unified Push uses JMS to queue work and update configuration for senders. By default, Unified Push uses a JMS broker build into its Wildfly Applicaiton Server, but it may also be configured to use a service which implements JMS with the AMQP protocol such as Apache Artemis. If you wish to run Unified Push in a multi-instance environment, you will need to configure an external AMQP server to coordinate work among your Unified Push instances.

Unified Push Address Definitions

Unified Push has several queues and addresses that it expects to be available. Each push service has two queues named in the format ${PushServiceName}TokenBatchQueue and ${PushServiceName}PushMessageQueue. These queues schedule Unified Push to lookup metadata for a request to send a push message and to send formatted messages to the respective push services respectively. Additionally there are queues and addresses which signal configuration changes, metrics updates, and other internal Unified Push service events.

Push Service queues

The following is a list of queues used by Unified Push to send messages:

Queue NameDescription
GCMPushMessageQueueThis Queue triggers work to send messages to FCM.
GCMTokenBatchQueueThis Queue triggers work to prepare messages to FCM.
WebPushMessageQueueThis Queue triggers work to send messages to web push.
WebTokenBatchQueueThis Queue triggers work to prepare messages to web push.
APNsPushMessageQueueThis Queue triggers work to send messages to APNs.
APNsTokenBatchQueueThis Queue triggers work to prepare messages to APNs.
WNSPushMessageQueuedeprecated This queue will be removed in a future release.
WNSTokenBatchConsumerdeprecated This queue will be removed in a future release.

Unified Push Service internal topics

Additionally, there is a topic which is used by Unified Push to restart connections to APNs.

Queue NameDescription
APNSClientThis signals APNSClientConsumer to reload its configuration and reconnect to APNs.

External AMQP Broker Configuration

Unified Push has been tested with EnMasse, AMQ Online, and AMQ Artemis as JMS brokers. In theory it should work any AMQP broker that supports JMS. Unified Push's support for external brokers can be enabled and configured by setting the following environment variables at startup:

NameDescription
ARTEMIS_USERA username to connect to an AMQP server
ARTEMIS_PASSWORDA password to connect to an AMQP server
ARTEMIS_SERVICE_HOSTAMQP server hostname or ip address
ARTEMIS_SERVICE_PORTAMQP server port
AMQ_MAX_RETRIES'optional' Number of times to retry sending a push message before discarding the JMS message.
Default 3
AMQ_BACKOFF_SECONDS'optional' Number of seconds to delay retrying a JMS message.
Default 10

Artemis Example with docker-compose

We provide an example configuration using docker-compose in our GitHub repository.

Enmasse Example with an Operator

If you manage Unified Push using the Unified Push operator, you may set useMessageBroker to true in your UnifiedPushServer CR. See our example in the unifiedpush-operator repository

← Running Unified PushGetting Started →
  • Usage of JMS in Unified Push
  • Unified Push Address Definitions
    • Push Service queues
    • Unified Push Service internal topics
  • External AMQP Broker Configuration
    • Artemis Example with docker-compose
    • Enmasse Example with an Operator
Docs
Getting Started
Community
HelpAeroGear mailing listStack Overflow
Social
UnifiedPush Server
Follow @aerogears
Copyright © 2020 the AeroGear team