diff --git a/doc/websocket-client.md b/doc/websocket-client.md index 06612d1..71ceb44 100644 --- a/doc/websocket-client.md +++ b/doc/websocket-client.md @@ -37,6 +37,10 @@ to the server once connection has been lost. - `topics` {String|Array} Single topic as string or multiple topics as array of strings. Subscribe to one or multiple topics. See [available topics](#available-topics) +### ws.unsubscribe(topics) + +- `topics` {String|Array} Single topic as string or multiple topics as array of strings. +Unsubscribe from one or multiple topics. ### ws.close() diff --git a/lib/websocket-client.js b/lib/websocket-client.js index 4c91783..626a117 100644 --- a/lib/websocket-client.js +++ b/lib/websocket-client.js @@ -50,6 +50,17 @@ module.exports = class WebsocketClient extends EventEmitter { this.ws.send(msgStr); } + unsubscribe(topics) { + if(!Array.isArray(topics)) topics = [topics]; + + const msgStr = JSON.stringify({ + op: 'unsubscribe', + 'args': topics + }); + + this.ws.send(msgStr); + } + close() { this.logger.info('Closing connection', {category: 'bybit-ws'}); this.readyState = READY_STATE_CLOSING;