From 6df0e942b97c864c687fa156a4067a2fc5610e7a Mon Sep 17 00:00:00 2001 From: Mitja Bochmann Date: Sun, 11 Feb 2018 19:54:54 +0100 Subject: [PATCH] Returning Websockets instead of void for methods for listening to websockets. --- .../Interfaces/IApiClient.cs | 3 ++- .../Interfaces/IBinanceClient.cs | 7 ++++--- Binance.API.Csharp.Client/ApiClient.cs | 3 ++- Binance.API.Csharp.Client/BinanceClient.cs | 13 +++++++------ 4 files changed, 15 insertions(+), 11 deletions(-) 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); } ///