evrythng-pubsub

1.0.0 • Public • Published

evrythng-pubsub.js

Plugin for evrythng.js (v5.1.0 and above) allowing easy subscription and publication to resources such as Thngs, products, and actions using either MQTT or WebSockets.

Install

npm

npm i --save evrythng-pubsub

Then require it into any module.

const evrythng = require('evrythng')
const PubSub = require('evrythng-pubsub')
 
evrythng.use(PubSub)

CDN

Add it as a script tag to your page:

<script src="https://d10ka0m22z5ju5.cloudfront.net/js/evrythng-pubsub/1.0.0/evrythng-pubsub-1.0.0.js"></script>

Then use in the same manner as for Node:

<script>
  evrythng.use(PubSub)
</script> 

Usage

After installing the plugin with evrythng.use(), three methods are added to all resource types, such as Thngs, products, actions, etc. if they are available as subscription topics.

  • .subscribe(onMessage) - Subscribe to topic updates with a callback.
  • .unsubscribe() - Unsubscribe from topic updates.
  • .publish(payload) - Publish to a topic with payload data, such as an action.

Examples

Subscribe to all actions:

const onActionCreated = (action) => {
  console.log(`Action created: ${action.id} of type ${action.type}`)
}
 
await user.action('all').subscribe(onActionCreated)

Pubish a new action:

const payload = { type: 'scans', thng: thngId }
 
await user.action('all').publish(payload)

Unsubscribe from all actions:

await user.action('all').unsubscribe()

Testing

Use the tests/browser and tests/node directories to test this SDK in the browser or Node, or run the Mocha test suite using a testable Trusted Application API Key:

export TRUSTED_API_KEY=a87s9j3h...

npm test

Dependencies (1)

Dev Dependencies (11)

Package Sidebar

Install

npm i evrythng-pubsub

Weekly Downloads

5

Version

1.0.0

License

Apache-2.0

Unpacked Size

199 kB

Total Files

21

Last publish

Collaborators

  • evt-master