Providers
Prev | Chapter 20. Tigase Push Component | Next

## Providers

Providers availability depends on the deployed binaries, by default Tigase includes following providers:

### Tigase Push Component - FCM provider

### Overview

Tigase Push Component - FCM provider is an implementation of FCM provider for Tigase Push Component. It allows Tigase Push Component to connect to Firebase Cloud Messaging and send notifications using this service.

### Configuration

#### Enabling provider

To enable this provider, you need to enable fcm-xmpp-api bean within push component configuration scope.

Example.

    push () {
        'fcm-xmpp-api' () {
            # FCM configuration here
        }
    }

### Note

You need to pass FCM configuration parameters to make it work, see below.

#### Setting FCM credentials

FCM XMPP API provider will not work properly without API key and project id as this values are required for authorization by FCM. You need to get information from FCM account.

When you have this data, you need to pass sender id as sender-id property and server key as server-key property.

Example.

    push () {
        'fcm-xmpp-api' () {
            'sender-id' = 'your-sender-id'
            'server-key' = 'your-server-key'
        }
    }

#### Connection pool

By default this provider uses single client to server connection to FCM for sending notifications. If in your use case it is to small (as you need better performance), you should adjust value of pool-size configuration property. Setting it to `5` will open five connections to FCM for better performance.

Example.

    push () {
        'fcm-xmpp-api' () {
            'pool-size' = 5
        }
    }

### Tigase Push Component - APNs provider

### Overview

Tigase Push Component - APNs provider is an implementation of APNs provider for Tigase Push Component. It allows Tigase Push Component to connect to Apple Push Notification service and send notifications using this service.

### Configuration

#### Enabling provider

To enable this provider, you need to enable apns-binary-api bean within push component configuration scope.

Example.

    push () {
        'apns-binary-api' () {
            # APNs configuration here
        }
    }

### Note

You need to pass APNs configuration parameters to make it work, see below.

#### Setting APNs credentials

APNs binary API provider will not work properly without certificate file required for authorization by APNs and password to decrypt this certificate file. You need to get certificate using Apple Developer Account.

When you have this certificate, you need to pass path to certificate file as cert-file property and password as cert-password

Example for /etc/apns-cert.p12 and Pa$$word.

    push () {
        'apns-binary-api' () {
            'cert-file' = '/etc/apns-cert.p12'
            'cert-password' = 'Pa$$w0rd'
        }
    }

#### Connection pool

By default this provider uses many connection to APNs for sending notifications which equals to number of available CPU cores. If in your use case it is to small or too big number, you can adjust it by setting value of pool-size configuration property. Setting it to `5` will make sure to use only five connections to APNs.

Example.

    push () {
        'apns-binary-api' () {
            'pool-size' = 5
        }
    }

Prev | Up | Next
Usage | Home | Chapter 21. Tigase STUN Component