Skip to content
Chabok Push Javascript SDK
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist 1.5.0 Aug 31, 2019
sample 1.5.0 Aug 31, 2019
.gitignore init release Sep 18, 2017
LICENSE init release Sep 18, 2017 1.2.0 Feb 5, 2019
package.json 1.5.0 Aug 31, 2019


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
You can’t perform that action at this time.