chabokpush

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

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
chabokpush
2.1.03 years ago6 years agoMinified + gzip package size for chabokpush in KB

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
}