bearychat-rtm-client
v0.9.3
Published
RTM client for BearyChat
Downloads
13
Readme
BearyChat OpenAPI RTM Client
Compatible with Node.js, Webpack and Browserify.
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
Examples
LICENSE
MIT