@webex/internal-plugin-mercury
Plugin for the Mercury service
This is an internal Cisco Webex plugin. As such, it does not strictly adhere to semantic versioning. Use at your own risk. If you're not working on one of our first party clients, please look at our developer api and stick to our public plugins.
Install
npm install --save @webex/internal-plugin-mercury
Usage
import '@webex/internal-plugin-mercury';
import WebexCore from '@webex/webex-core';
const webex = new WebexCore();
webex.internal.mercury.WHATEVER;
Config Options
Using A Proxy Agent To Open A Websocket Connection
For consumers who are not using the SDK via the browser it may be necessary to configure a proxy agent in order to connect with Mercury and open a Websocket in a proxy environment.
This can be done by configuring an agent as part of a DefaultMercuryOptions config object as shown below. The agent object will then be injected into the SDK and used in the Mercury plugin during WebSocket construction as an option property, allowing a connection to be established via the specified proxy url.
const webex = require(`webex`);
const HttpsProxyAgent = require('https-proxy-agent');
let httpsProxyAgent = new HttpsProxyAgent(url.parse(proxyUrl));
webex.init({
config: {
defaultMercuryOptions: {
agent: httpsProxyAgent
},
...
}
});
Retries
The default behaviour is for Mercury to continue to try to connect with an exponential back-off. This behavior can be adjusted with the following config params:
maxRetries
- the number of times it will retry before error. Default: 0initialConnectionMaxRetries
- the number of times it will retry before error on the first connection. Once a connection has been established, any further connection attempts will use maxRetries
. Default: 0backoffTimeMax
- The maximum time between connection attempts in ms. Default: 32000backoffTimeReset
- The time before the first retry in ms. Default: 1000
Maintainers
This package is maintained by Cisco Webex for Developers.
Contribute
Pull requests welcome. Please see CONTRIBUTING.md for more details.
License
© 2016-2020 Cisco and/or its affiliates. All Rights Reserved.