diff --git a/package.json b/package.json index 4d9c62e..1849e27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "janus-videoroom-client", - "version": "3.0.0", + "version": "3.1.0", "main": "src/janus.js", "scripts": { "test": "mocha -R spec --full-trace test/*-spec.js" diff --git a/src/plugins/plugin.js b/src/plugins/plugin.js index 974aeda..1505551 100644 --- a/src/plugins/plugin.js +++ b/src/plugins/plugin.js @@ -1,5 +1,7 @@ 'use strict'; +var Promise = require('bluebird'); + class Plugin { constructor(options) { @@ -51,6 +53,28 @@ class Plugin { }); }); } + + destroyHandle(handle) { + return this.destroyHandleById(handle.getId()); + } + + destroyHandleById(id) { + return new Promise((resolve, reject)=>{ + if(this.hasHandle(id)) { + let handle = this.getHandle(id); + handle.detach().then(()=>{ + this.removeHandle(id); + resolve(); + }).catch((err)=>{ + this.removeHandle(id); + reject(err); + }); + } else { + this.removeHandle(id); + resolve(); + } + }); + } } module.exports.Plugin = Plugin;