kucoin-universal-sdk
Version:
Official KuCoin Universal SDK.
98 lines • 3.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebSocketClientOptionBuilder = exports.DEFAULT_WEBSOCKET_CLIENT_OPTION = exports.WebSocketEvent = void 0;
/**
* WebSocketEvent defines the types of WebSocket events
*/
var WebSocketEvent;
(function (WebSocketEvent) {
WebSocketEvent["EventConnected"] = "EventConnected";
WebSocketEvent["EventDisconnected"] = "EventDisconnected";
WebSocketEvent["EventTryReconnect"] = "EventTryReconnect";
WebSocketEvent["EventMessageReceived"] = "EventMessageReceived";
WebSocketEvent["EventErrorReceived"] = "EventErrorReceived";
WebSocketEvent["EventPongReceived"] = "EventPongReceived";
WebSocketEvent["EventReadBufferFull"] = "EventReadBufferFull";
WebSocketEvent["EventWriteBufferFull"] = "EventWriteBufferFull";
WebSocketEvent["EventCallbackError"] = "EventCallbackError";
WebSocketEvent["EventReSubscribeOK"] = "EventReSubscribeOK";
WebSocketEvent["EventReSubscribeError"] = "EventReSubscribeError";
WebSocketEvent["EventClientFail"] = "EventClientFail";
WebSocketEvent["EventClientShutdown"] = "EventClientShutdown";
})(WebSocketEvent || (exports.WebSocketEvent = WebSocketEvent = {}));
/**
* Default values for WebSocketClientOption
*/
exports.DEFAULT_WEBSOCKET_CLIENT_OPTION = {
reconnect: true,
reconnectAttempts: -1,
reconnectInterval: 5000, // 5 seconds
dialTimeout: 10000, // 10 seconds
readMessageBuffer: 1024,
writeTimeout: 30000, // 30 seconds
};
/**
* WebSocketClientOptionBuilder is a builder for WebSocketClientOption
*/
class WebSocketClientOptionBuilder {
constructor() {
this.option = { ...exports.DEFAULT_WEBSOCKET_CLIENT_OPTION };
}
/**
* Set whether to enable auto-reconnect
*/
withReconnect(reconnect) {
this.option.reconnect = reconnect;
return this;
}
/**
* Set the maximum reconnect attempts
*/
withReconnectAttempts(attempts) {
this.option.reconnectAttempts = attempts;
return this;
}
/**
* Set the interval between reconnect attempts (milliseconds)
*/
withReconnectInterval(interval) {
this.option.reconnectInterval = interval;
return this;
}
/**
* Set the timeout for establishing a WebSocket connection (milliseconds)
*/
withDialTimeout(timeout) {
this.option.dialTimeout = timeout;
return this;
}
/**
* Set the read buffer size for messages
*/
withReadMessageBuffer(readMessageBuffer) {
this.option.readMessageBuffer = readMessageBuffer;
return this;
}
/**
* Set the write timeout (milliseconds)
*/
withWriteTimeout(timeout) {
this.option.writeTimeout = timeout;
return this;
}
/**
* Set the callback function to handle WebSocket events
*/
withEventCallback(callback) {
this.option.eventCallback = callback;
return this;
}
/**
* Build and return the WebSocketClientOption instance
*/
build() {
return this.option;
}
}
exports.WebSocketClientOptionBuilder = WebSocketClientOptionBuilder;
//# sourceMappingURL=websocket_option.js.map