diff --git a/Binance.API.Csharp.Client.Domain/Interfaces/IApiClient.cs b/Binance.API.Csharp.Client.Domain/Interfaces/IApiClient.cs
index 65dc01f..e1149e2 100644
--- a/Binance.API.Csharp.Client.Domain/Interfaces/IApiClient.cs
+++ b/Binance.API.Csharp.Client.Domain/Interfaces/IApiClient.cs
@@ -1,6 +1,7 @@
using Binance.API.Csharp.Client.Models.Enums;
using Binance.API.Csharp.Client.Models.WebSocket;
using System.Threading.Tasks;
+using WebSocketSharp;
using static Binance.API.Csharp.Client.Domain.Abstract.ApiClientAbstract;
namespace Binance.API.Csharp.Client.Domain.Interfaces
@@ -25,7 +26,7 @@ public interface IApiClient
/// Paremeters to send to the Websocket.
/// Deletage to callback after receive a message.
/// Specifies if needs to use a custom parser for the response message.
- void ConnectToWebSocket(string parameters, MessageHandler messageDelegate, bool useCustomParser = false);
+ WebSocket ConnectToWebSocket(string parameters, MessageHandler messageDelegate, bool useCustomParser = false);
///
/// Connects to a UserData Websocket endpoint.
diff --git a/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs b/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs
index 5312215..48b3b10 100644
--- a/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs
+++ b/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs
@@ -7,6 +7,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
+using WebSocketSharp;
using static Binance.API.Csharp.Client.Domain.Abstract.ApiClientAbstract;
namespace Binance.API.Csharp.Client.Domain.Interfaces
@@ -215,7 +216,7 @@ public interface IBinanceClient
///
/// Ticker symbol.
/// Handler to be used when a message is received.
- void ListenDepthEndpoint(string symbol, MessageHandler messageHandler);
+ WebSocket ListenDepthEndpoint(string symbol, MessageHandler messageHandler);
///
/// Listen to the Kline endpoint.
@@ -223,14 +224,14 @@ public interface IBinanceClient
/// Ticker symbol.
/// Time interval to retreive.
/// Handler to be used when a message is received.
- void ListenKlineEndpoint(string symbol, TimeInterval interval, MessageHandler messageHandler);
+ WebSocket ListenKlineEndpoint(string symbol, TimeInterval interval, MessageHandler messageHandler);
///
/// Listen to the Trades endpoint.
///
/// Ticker symbol.
/// Handler to be used when a message is received.
- void ListenTradeEndpoint(string symbol, MessageHandler messageHandler);
+ WebSocket ListenTradeEndpoint(string symbol, MessageHandler messageHandler);
///
/// Listen to the User Data endpoint.
diff --git a/Binance.API.Csharp.Client/ApiClient.cs b/Binance.API.Csharp.Client/ApiClient.cs
index 7601abe..3e2c3bf 100644
--- a/Binance.API.Csharp.Client/ApiClient.cs
+++ b/Binance.API.Csharp.Client/ApiClient.cs
@@ -97,7 +97,7 @@ public async Task CallAsync(ApiMethod method, string endpoint, bool isSign
/// Paremeters to send to the Websocket.
/// Deletage to callback after receive a message.
/// Specifies if needs to use a custom parser for the response message.
- public void ConnectToWebSocket(string parameters, MessageHandler messageHandler, bool useCustomParser = false)
+ public WebSocket ConnectToWebSocket(string parameters, MessageHandler messageHandler, bool useCustomParser = false)
{
var finalEndpoint = _webSocketEndpoint + parameters;
@@ -132,6 +132,7 @@ public void ConnectToWebSocket(string parameters, MessageHandler messageHa
ws.Connect();
_openSockets.Add(ws);
+ return ws;
}
///
diff --git a/Binance.API.Csharp.Client/BinanceClient.cs b/Binance.API.Csharp.Client/BinanceClient.cs
index c37503a..999b9fd 100644
--- a/Binance.API.Csharp.Client/BinanceClient.cs
+++ b/Binance.API.Csharp.Client/BinanceClient.cs
@@ -12,6 +12,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using WebSocketSharp;
namespace Binance.API.Csharp.Client
{
@@ -563,7 +564,7 @@ public async Task CloseUserStream(string listenKey)
///
/// Ticker symbol.
/// Handler to be used when a message is received.
- public void ListenDepthEndpoint(string symbol, ApiClientAbstract.MessageHandler depthHandler)
+ public WebSocket ListenDepthEndpoint(string symbol, ApiClientAbstract.MessageHandler depthHandler)
{
if (string.IsNullOrWhiteSpace(symbol))
{
@@ -571,7 +572,7 @@ public void ListenDepthEndpoint(string symbol, ApiClientAbstract.MessageHandler<
}
var param = symbol + "@depth";
- _apiClient.ConnectToWebSocket(param, depthHandler, true);
+ return _apiClient.ConnectToWebSocket(param, depthHandler, true);
}
///
@@ -580,7 +581,7 @@ public void ListenDepthEndpoint(string symbol, ApiClientAbstract.MessageHandler<
/// Ticker symbol.
/// Time interval to retreive.
/// Handler to be used when a message is received.
- public void ListenKlineEndpoint(string symbol, TimeInterval interval, ApiClientAbstract.MessageHandler klineHandler)
+ public WebSocket ListenKlineEndpoint(string symbol, TimeInterval interval, ApiClientAbstract.MessageHandler klineHandler)
{
if (string.IsNullOrWhiteSpace(symbol))
{
@@ -588,7 +589,7 @@ public void ListenKlineEndpoint(string symbol, TimeInterval interval, ApiClientA
}
var param = symbol + $"@kline_{interval.GetDescription()}";
- _apiClient.ConnectToWebSocket(param, klineHandler);
+ return _apiClient.ConnectToWebSocket(param, klineHandler);
}
///
@@ -596,7 +597,7 @@ public void ListenKlineEndpoint(string symbol, TimeInterval interval, ApiClientA
///
/// Ticker symbol.
/// Handler to be used when a message is received.
- public void ListenTradeEndpoint(string symbol, ApiClientAbstract.MessageHandler tradeHandler)
+ public WebSocket ListenTradeEndpoint(string symbol, ApiClientAbstract.MessageHandler tradeHandler)
{
if (string.IsNullOrWhiteSpace(symbol))
{
@@ -604,7 +605,7 @@ public void ListenTradeEndpoint(string symbol, ApiClientAbstract.MessageHandler<
}
var param = symbol + "@aggTrade";
- _apiClient.ConnectToWebSocket(param, tradeHandler);
+ return _apiClient.ConnectToWebSocket(param, tradeHandler);
}
///