chabokpush

Chabok Javascript client for browsers, Web Workers & Node.js

Usage no npm install needed!

<script type="module">
  import chabokpush from 'https://cdn.skypack.dev/chabokpush';
</script>

README

Logo

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

Or:

yarn add chabokpush

Then:

import chabokpush from 'chabokpush';

Or, if you're not using ES6 modules:

const chabokpush = require('chabokpush');

CDN

<script src="https://unpkg.com/chabokpush@[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.
Safari
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:

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

Initialization

const auth = {
  appId: 'APP_ID',
  webKey: 'WEB_TOKEN',
  devMode:true
}
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.

Options

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', _ => {
  console.log('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()) {
  chabok.register(chabok.getUserId())
} else {
  chabok.register('012345678910111213') // your userId
}