add docs for ClientManager

This commit is contained in:
Amish Shah
2016-08-19 00:33:12 +01:00
parent 24df1bc621
commit e0c987c1b2
2 changed files with 26 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +1,32 @@
const Constants = require('../util/Constants');
/**
* Manages the State and Background Tasks of the Client
* @class ClientManager
* @private
*/
class ClientManager {
constructor(client) {
/**
* The Client that instantiated this Manager
* @type {Client}
*/
this.client = client;
/**
* The heartbeat interval, null if not yet set
* @type {?Number}
*/
this.heartbeatInterval = null;
}
/**
* Connects the Client to the WebSocket
* @param {String} token the authorization token
* @param {Function} resolve function to run when connection is successful
* @param {Function} reject function to run when connection fails
* @returns {null}
*/
connectToWebSocket(token, resolve, reject) {
this.client.store.token = token;
this.client.rest.methods.getGateway()
@@ -19,6 +39,11 @@ class ClientManager {
setTimeout(() => reject(Constants.Errors.TOOK_TOO_LONG), 1000 * 15);
}
/**
* Sets up a keep-alive interval to keep the Client's connection valid
* @param {Number} time the interval in milliseconds at which heartbeat packets should be sent
* @returns {null}
*/
setupKeepAlive(time) {
this.heartbeatInterval = setInterval(() => {
this.client.ws.send({