frankly-js
Version:
JavaScript library providing building blocks to write applications using the Frankly API.
147 lines (112 loc) • 3.45 kB
Markdown
frankly-js
==========
Frankly Chat SDK for web browsers and Node.js applications.
Installation
------------
The simplest way to install this module is to use the deployed package on npm:
```
$ npm install frankly-js
```
Usage (Node.js)
---------------
After installing the SDK you can import it like any standard node module using
the require function, here's a quick example of how this is usually done:
```js
var frankly = require('frankly-js')
// Create a client that interacts with the Frankly API over HTTP, ideal for
// efficient server-to-server operations.
var client = new frankly.Client('https')
var key = '...'
var secret = '...'
// Opens the client to make operations on behalf of the admin user of the app.
client.open(key, secret, { role: 'admin' })
// Send a sticky message to a room with id 42.
client.createRoomMessage(42, {
contents : [{ type: 'text/plain', value: 'Hello World!' }],
sticky : true,
})
.then(function (message) {
...
})
.catch(function (error) {
...
})
```
Usage (Browsers)
----------------
The code is also published online and can be embeded directly into a web page:
```html
<script src="https://cdn.franklychat.com/frankly-js/1/frankly.min.js"></script>
<script>
// Create a client that interacts with the Frankly API over WebSocket,
// enables receiving real-time messages, automatic reconnections and
// authentication.
var client = new frankly.Client('wss')
client.open(function (nonce) {
return new Promise(function (resolve, reject) {
// Call a backend endpoint to generate identity tokens and resolve the
// promise.
...
})
})
client.on('error', function (error) {
// Called if the client fails to connect or authenticate.
...
})
client.on('authenticate', function (session) {
// Called when the client successfully authenticates.
...
})
client.on('connect', function () {
// Called when the client sucessfully establishes a websocket connection.
...
})
client.on('disconnect', function (event) {
// Called if the client loses an established websocket connection.
...
})
client.on('update', function (event) {
// Called when the server pushes a resource update signal to the client.
...
})
client.on('delete', function (event) {
// Called when the server pushes a resource deletion signal to the client.
...
})
</script>
```
Formatting
-------------
Follows https://github.com/feross/standard
```
$ npm install standard -g
$ standard --format
```
Building
-------------
To build the JS SDK, determine your version (as `{$version}`), and run
```
$ ./scripts/build ./dist {$version}
```
Testing
-------------
`mocha` is required to run the test suite, the following environment variables
also have to be set:
- `FRANKLY_APP_HOST` usually set to https://app.franklychat.com
- `FRANKLY_APP_KEY` the app key obtained from the *Frankly Console*.
- `FRANKLY_APP_SECRET` the app secret obtained from the *Frankly Console*.
then simply run
```
$ npm test
```
To run a single test in isolation, run
```
$ mocha test/[name-of-test-file.js] --timeout=10000
```
Documentation
-------------
To create documentation for the JS SDK, make sure you have [jsdoc](https://github.com/jsdoc3/jsdoc) installed and run
```
$ ./scripts/gendoc ./doc
```
The reference documentation can be found at http://franklyinc.github.io/APIReference-JavaScript.html