Merge pull request #371 from tiagosiebler/keepalive
v3.10.18: feat(#368) add config for HTTP keep alive via axios
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "bybit-api",
|
"name": "bybit-api",
|
||||||
"version": "3.10.17",
|
"version": "3.10.18",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "bybit-api",
|
"name": "bybit-api",
|
||||||
"version": "3.10.17",
|
"version": "3.10.18",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.6.6",
|
"axios": "^1.6.6",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bybit-api",
|
"name": "bybit-api",
|
||||||
"version": "3.10.17",
|
"version": "3.10.18",
|
||||||
"description": "Complete & robust Node.js SDK for Bybit's REST APIs and WebSockets, with TypeScript & strong end to end tests.",
|
"description": "Complete & robust Node.js SDK for Bybit's REST APIs and WebSockets, with TypeScript & strong end to end tests.",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"types": "lib/index.d.ts",
|
"types": "lib/index.d.ts",
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
import axios, { AxiosRequestConfig, AxiosResponse, Method } from 'axios';
|
import axios, { AxiosRequestConfig, AxiosResponse, Method } from 'axios';
|
||||||
|
import https from 'https';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
APIID,
|
APIID,
|
||||||
@@ -137,6 +138,16 @@ export default abstract class BaseRestClient {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// If enabled, configure a https agent with keepAlive enabled
|
||||||
|
if (this.options.keepAlive) {
|
||||||
|
// For more advanced configuration, raise an issue on GitHub or use the "networkOptions"
|
||||||
|
// parameter to define a custom httpsAgent with the desired properties
|
||||||
|
this.globalRequestOptions.httpsAgent = new https.Agent({
|
||||||
|
keepAlive: true,
|
||||||
|
keepAliveMsecs: this.options.keepAliveMsecs,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.baseUrl = getRestBaseUrl(!!this.options.testnet, restOptions);
|
this.baseUrl = getRestBaseUrl(!!this.options.testnet, restOptions);
|
||||||
this.key = this.options.key;
|
this.key = this.options.key;
|
||||||
this.secret = this.options.secret;
|
this.secret = this.options.secret;
|
||||||
|
|||||||
@@ -29,6 +29,19 @@ export interface RestClientOptions {
|
|||||||
*/
|
*/
|
||||||
enable_time_sync?: boolean;
|
enable_time_sync?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable keep alive for REST API requests (via axios).
|
||||||
|
* See: https://github.com/tiagosiebler/bybit-api/issues/368
|
||||||
|
*/
|
||||||
|
keepAlive?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000.
|
||||||
|
* Only relevant if keepAlive is set to true.
|
||||||
|
* Default: 1000 (defaults comes from https agent)
|
||||||
|
*/
|
||||||
|
keepAliveMsecs?: number;
|
||||||
|
|
||||||
/** How often to sync time drift with bybit servers */
|
/** How often to sync time drift with bybit servers */
|
||||||
sync_interval_ms?: number | string;
|
sync_interval_ms?: number | string;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user