bearychat-rtm-client

0.9.3 • Public • Published

BearyChat OpenAPI RTM Client

Compatible with Node.js, Webpack and Browserify.

@BearyChat Build Status npm version

Install

npm install bearychat-rtm-client --save

or with yarn

yarn add bearychat-rtm-client

Usage

API

RTMClient

constructor({ url, WebSocket })

Param Description
url a websocket url or a function returns a promise that resolves to a websocket url
WebSocket a W3C compatible WebSocket client implement

Browser usage:

RTMClient uses native WebSocket in browser.

import bearychat from 'bearychat';
import RTMClient from 'bearychat-rtm-client';
const RTMClientEvents = RTMClient.RTMClientEvents;
 
const client = new RTMClient({
  url() {
    return bearychat.rtm.start({token: '<your hubot token>'})
      .then(resp => resp.json())
      .then(data => data.ws_host);
  }
});
 
client.on(RTMClientEvents.ONLINE, function() {
  console.log('RTM online');
});
 
client.on(RTMClientEvents.OFFLINE, function() {
  console.log('RTM offline');
});
 
client.on(RTMClientEvents.EVENT, function(message) {
  console.log('event message received: ', message);
});
 
client.send({
  // your message body
});
 

Node.js usage:

RTMClient need a W3C compatible WebSocket client implement. ws version 3.0.0+ is recommended.

const bearychat = require('bearychat');
const RTMClient = require('bearychat-rtm-client');
const RTMClientEvents = RTMClient.RTMClientEvents;
const WebSocket = require('ws');
 
const client = new RTMClient({
  url: function() {
    return bearychat.rtm.start({token: '<your hubot token>'})
      .then(function (resp) {return resp.json()})
      .then(function (data) {return data.ws_host});
  },
  WebSocket: WebSocket
});
 
client.on(RTMClientEvents.ONLINE, function() {
  console.log('RTM online');
});
 
client.on(RTMClientEvents.OFFLINE, function() {
  console.log('RTM offline');
});
 
client.on(RTMClientEvents.EVENT, function(message) {
  console.log('event message received: ', message);
});
 
client.send({
  // your message body
});
 

Client events

Event Description
RTMClientEvents.ONLINE client connected
RTMClientEvents.OFFLINE client disconnected
RTMClientEvents.CLOSE client closed
RTMClientEvents.EVENT receive event message from server
RTMClientEvents.ERROR error occurred

Client state

                  INITIAL
                     +
        error        |
    +-------------+  |
    v             +  v        connect
RECONNECT+------->CONNECTING<---------+CLOSED
    ^                +                    ^
    |                |                    |
    |    server      |                    |
    |    close/      v        close       +
    +------------+CONNECTED+---------->CLOSING
         error

RTM events

RTM events

Examples

BearyChat shell client

LICENSE

MIT

Readme

Keywords

Package Sidebar

Install

npm i bearychat-rtm-client

Weekly Downloads

2

Version

0.9.3

License

MIT

Unpacked Size

85.1 kB

Total Files

15

Last publish

Collaborators

  • kenan2002
  • ohaiyang
  • shonenada
  • yuanbohan