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

    Install

    npm i bearychat-rtm-client

    DownloadsWeekly Downloads

    1

    Version

    0.9.3

    License

    MIT

    Unpacked Size

    85.1 kB

    Total Files

    15

    Last publish

    Collaborators

    • kenan2002
    • ohaiyang
    • shonenada
    • yuanbohan