Socket
Socket
Sign inDemoInstall

beebotte

Package Overview
Dependencies
146
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    beebotte

Beebotte is an open cloud platform for real time connected objects. This package provides the implementation of Beebotte API in nodejs.


Version published
Weekly downloads
19
decreased by-61.22%
Maintainers
1
Install size
9.43 MB
Created
Weekly downloads
 

Changelog

Source

1.7.0

  • Upgrade request to v2.88.0
  • Upgrade socket.io-client to v2.3.0
  • Replace deprecated joi with @hapi/joi v16.1.8
  • Upgrade mqtt to v2.18.8
  • Upgrade dev dependency chai to v4.2.0
  • Upgrade dev dependency jshint to v2.10.3
  • Upgrade dev dependency mocha to v6.2.2
  • Remove unused dev dependencies coveralls and istanbul

Readme

Source

Beebotte Node.JS SDK

npm version

whatwhere
overviewhttp://beebotte.com/overview
tutorialshttp://beebotte.com/tutorials
apidochttp://beebotte.com/docs/restapi
sourcehttps://github.com/beebotte/bbt_node

Bugs / Feature Requests

Think you.ve found a bug? Want to see a new feature in beebotte? Please open an issue in github. Please provide as much information as possible about the issue type and how to reproduce it.

https://github.com/beebotte/bbt_node/issues

Install

To install the most recent release from npm, run:

npm install beebotte

Introduction

This Node.js library provides:

  • REST client, and,
  • Stream pub/sub client to Beebotte API

The Stream API supports two transports:

  • MQTT
  • Socket.io

Remember, Beebotte resource description uses a two levels hierarchy:

  • Channel: physical or virtual connected object (an application, an arduino, a coffee machine, etc) providing some resources
  • Resource: most elementary part of Beebotte, this is the actual data source (temperature from a domotics sensor)

Usage

REST Connector

  //Include the Beebotte SDK for nodejs
  var bbt = require('beebotte');

  //Create a Beebotte connector
  //Replace API key and secret key by those of your account
  var client = new bbt.Connector({apiKey: 'API KEY', secretKey: 'SECRET KEY'});

  //write (persistent message) to a given channel & resource
  client.write(
    {channel: 'mychannel', resource: 'resource1', data: 'Hello World'},
    function(err, res) {
      if(err) throw(err);
      console.log(res);
  });

  //publishe (transient message) to a given channel & resource
  client.write(
    {channel: 'mychannel', resource: 'resource1', data: 'Hello World'},
    function(err, res) {
      if(err) throw(err);
      console.log(res);
  });

  //read persistent messages from a given channel & resource
  client.read({
    channel: 'mychannel',
    resource: 'resource1', 
    limit: 5/* Retrieves last 5 records */
  }, function(err, res) {
    if(err) throw(err);
    console.log(res);
  });

Stream Connector - MQTT transport

  //Include the Beebotte SDK for nodejs
  var bbt = require('beebotte');

  //Replace API and secret keys by those of your account
  var transport = {
    type: 'mqtt',
    apiKey: 'API KEY', 
    secretKey: 'SECRET KEY',
  }
  
  //Create a Stream connector
  client = new bbt.Stream({ transport: transport });

  //On successful connection
  client.on('connected', function() {
    //subscribe to a channel/resource 
    client.subscribe( 'mychannel', 'myresource', function(message){
      console.log(message);
    })
    //On successful subscription
    .on('subscribed', function(sub) {
      client.publish( 'mychannel', 'myresource', 'Hello World');
    });
  });

You can use the Channel Token to authenticate the connection. Using the Channel Token grants read and write access to any resource of that channel. This is the recommended authentication sc heme.

  //Replace Channel Token by that of your account
  var transport = {
    type: 'mqtt',
    token: 'CHANNEL_TOKEN'
  }

Stream Connector - Socket.io transport

  //Include the Beebotte SDK for nodejs
  var bbt = require('beebotte');

  //Replace API and secret keys by those of your account
  var transport = {
    type: 'socketio',
    apiKey: 'API KEY',
    secretKey: 'SECRET KEY'
  }

  // Alternatively, you could specify an authentication endpoint (see beebotte.com/docs/clientauth)
  //Replace API key by that of your account
  var transport = {
    type: 'socketio',
    apiKey: 'API KEY', 
    auth_endpoint: 'YOUR AUTH ENDPOINT', //See https://beebotte.com/docs/clientauth 
  }
  
  //Create a Stream connector
  client = new bbt.Stream({ transport: transport });

  //On successful connection
  client.on('connected', function() {
    //subscribe to a channel/resource (with read and write access)
    client.subscribe( 'mychannel', 'myresource', {read: true, write: true}, function(message){
      console.log(message);
    })
    //On successful subscription
    .on('subscribed', function(sub) {
      client.publish( 'mychannel', 'myresource', 'Hello World');
    });
  });

You can use the Channel Token to authenticate the connection. Using the Channel Token grants read and write access to any resource of that channel. This is the recommended authentication scheme.

  //Replace Channel Token by that of your account
  var transport = {
    type: 'socketio',
    token: 'CHANNEL_TOKEN'
  }

Alternatively, you could specify an authentication endpoint (see client authentication)

  //Replace API key by that of your account
  var transport = {
    type: 'socketio',
    apiKey: 'API KEY',
    auth_endpoint: 'YOUR AUTH ENDPOINT', //See https://beebotte.com/docs/clientauth
  }

License

Copyright 2020 Beebotte.

The MIT License

Keywords

FAQs

Last updated on 03 Jan 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc