Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Chabok Push Client for Javascript

npm npm

This Chabok Push client library supports web browsers, web workers.

Please check library changes.

Getting started

Yarn (or NPM)

You can use any NPM-compatible package manager, including NPM itself and Yarn.

npm install chabokpush --save


yarn add chabokpush


import chabokpush from 'chabokpush';

Or, if you're not using ES6 modules:

const chabokpush = require('chabokpush');


<script src="[X.Y.Z]/dist/chabokpush.min.js"></script>

Replace [X.Y.Z] with the latest version

Web Push Browser Support

The following table shows browsers' support for chabok messaging and web push notifications:

Browser web push chabok messaging Notes
Chrome ✓ v42+ In v51 and less, the `gcm_sender_id` is needed to get a push subscription.
Edge ✓ v17+ (April 2018)
Firefox ✓ v44+
Opera ✓ v39+ * * Opera supports push on Android but not on desktop.

The `gcm_sender_id` is needed to get a push subscription.
Samsung Internet Browser ✓ v4.0.10-53+ The `gcm_sender_id` is needed to get a push subscription.

For supporting web push notifications on chrome, opera and Samsung internet browser gcm_sender_id should be added to Manifest.js: (If you already have created your gcm_sender_id, you can find it in panel>setting>android cart)

    "gcm_sender_id": "GCM_SENDER_ID",

then add the Manifest.js to your root index.html:

  <link rel="manifest" href="manifest.json">


const auth = {
  appId: 'APP_ID',
  webKey: 'WEB_TOKEN',
const options={silent: true}

const chabok = new chabokpush.Chabok(auth, options)

if devMode enabled you can Test your Project on development Mode. You can get your APP_ID, API_KEY, USERNAME and PASSWORD from the Chabok dashboard.


There are a number of configuration parameters which can be set for the ChabokPush client, which can be passed as an object to the ChabokPush constructor, i.e.:

Param Type Default Description
[options] Object
[options.realtime] Object true set false to disable Realtime Connection
[options.webpush] Object
[options.webpush.enabled] Boolean false Set true to enable push Notification
[options.silent] Boolean true Receive messages Silently

Sample Usage

const auth = {
  appId: 'APP_ID',
  webKey: 'WEB_TOKEN',
  devMode: true
 const options = {
   webpush: {
     enabled: true,
     publicKey: 'demo'
   silent: false,

const chabok = new chabokpush.Chabok(auth, options)

chabok.on('registered', deviceId => console.log('DeviceId ', deviceId))

chabok.on('connected', _ => {
  chabok.subscribe('important') // subscribe to important channel
  chabok.subscribeEvent('geo') // subscribe to geo events

chabok.on('message', msg => console.log('Message ', msg))
chabok.on('geo', geoEvent => console.log('Geo Event ', geoEvent))

chabok.on('connecting', _ => console.log('Reconnecting'))
chabok.on('disconnected', _ => console.log('offline'))
chabok.on('closed', _ => console.log('disconnected'))

if (chabok.isRegistered() && chabok.getUserId()) {
} else {
  chabok.register('012345678910111213') // your userId