fcm-http2
TypeScript icon, indicating that this package has built-in type declarations

2.3.3 • Public • Published

fcm-http2

npm version license

Library in typescript for sending multicast notifications using HTTP/2 multiplexing and the FCM HTTP v1 API.

Features supported by fcm-http2:

  • [X] HTTP/2 session & stream concurrency
  • [X] Token batching support
  • [X] Uninstall detection
  • [X] Retry mechanism

Installation

Use package manager npm to install fcm-http2.

npm i fcm-http2

Usage

Once the library has been installed you can start using it in this way:

// FCM library recovery
import { FCM } from 'src/lib/fcm';
import { FcmOptions } from 'src/entity/fcm-options';

// Init FCM with default options
// NOTE: Put the service-account.json file in the package's lib directory
const fcmClient = new FCM();

// Or you can specify options

const fcmOptions = new FcmOptions(
    // Pass in your service account JSON private key file (https://console.firebase.google.com/u/0/project/_/settings/serviceaccounts/adminsdk)
    serviceAccount: require('./service-account.json'),
    // Max number of concurrent HTTP/2 sessions (connections)
    maxConcurrentConnections: 10,
    // Max number of concurrent streams (requests) per session
    maxConcurrentStreamsAllowed: 100
);

const fcmClient = new FCM(fcmOptions);


// Token to send the notification to
const tokens = ['TOKEN_1', 'TOKEN_N'];

// Composing the message to be sent
const message = {
    notification: {
        title: "Test",
        body: "Multiple Send"
    },
    data: {
        notification: "true"
    }
};

// Multiple sending of notification using token array
fcmClient.sendMulticast(message, tokens).then(unregisteredTokens => {

    // Sending successful
    console.log('Message sent successfully');

    // Remove unregistered tokens from your database
    if (unregisteredTokens.length > 0) {
        console.log('Unregistered device token(s): ', unregisteredTokens.join(', '));
    }

}).catch(error => console.log(error));

Requirements

  • Node.js >= 12

Contributions

Thanks to eladnava for contributing to the source code base of this library.

License

Apache License 2.0

Support

For any doubts open an issue or contact this email fctaddia@duck.com

/fcm-http2/

    Package Sidebar

    Install

    npm i fcm-http2

    Weekly Downloads

    37

    Version

    2.3.3

    License

    Apache-2.0

    Unpacked Size

    35.6 kB

    Total Files

    11

    Last publish

    Collaborators

    • fctaddia