/// <summary> /// Creates an instance of a websockets brokerage /// </summary> /// <param name="wssUrl">Websockets base url</param> /// <param name="websocket">Websocket client instance</param> /// <param name="restClient">Rest client instance</param> /// <param name="apiKey">Brokerage api auth key</param> /// <param name="apiSecret">Brokerage api auth secret</param> /// <param name="websocketMaximumIdle">The maximum amount of time the socket can go idle before triggering a reconnect</param> /// <param name="name">Name of brokerage</param> protected BaseWebsocketsBrokerage(string wssUrl, IWebSocket websocket, IRestClient restClient, string apiKey, string apiSecret, TimeSpan websocketMaximumIdle, string name) : base(name) { JsonSettings = new JsonSerializerSettings { FloatParseHandling = FloatParseHandling.Decimal }; CachedOrderIDs = new ConcurrentDictionary <int, Orders.Order>(); _connectionHandler = new DefaultConnectionHandler { MaximumIdleTimeSpan = websocketMaximumIdle }; WebSocket = websocket; WebSocket.Initialize(wssUrl); WebSocket.Message += (sender, message) => { OnMessage(sender, message); _connectionHandler.KeepAlive(LastHeartbeatUtcTime); }; _connectionHandler.Initialize(Guid.NewGuid().ToString()); _connectionHandler.ReconnectRequested += (sender, args) => { Reconnect(); }; RestClient = restClient; ApiSecret = apiSecret; ApiKey = apiKey; }
/// <summary> /// Initialize the instance of this class /// </summary> /// <param name="wssUrl">The web socket base url</param> /// <param name="websocket">instance of websockets client</param> /// <param name="restClient">instance of rest client</param> /// <param name="apiKey">api key</param> /// <param name="apiSecret">api secret</param> protected void Initialize(string wssUrl, IWebSocket websocket, IRestClient restClient, string apiKey, string apiSecret) { if (IsInitialized) { return; } IsInitialized = true; JsonSettings = new JsonSerializerSettings { FloatParseHandling = FloatParseHandling.Decimal }; CachedOrderIDs = new ConcurrentDictionary <int, Orders.Order>(); WebSocket = websocket; WebSocket.Initialize(wssUrl); WebSocket.Message += OnMessage; WebSocket.Open += (sender, args) => { Log.Trace($"BaseWebsocketsBrokerage(): WebSocket.Open. Subscribing"); Subscribe(GetSubscribed()); }; RestClient = restClient; ApiSecret = apiSecret; ApiKey = apiKey; }
public void Initialize() { if (true == string.IsNullOrEmpty(Lighthouse.URI)) { Lighthouse.URI = Lighthouse.ZoneType.REAL.GetEnumMemberValue(); } socket.Initialize(Lighthouse.URI); }
/// <summary> /// Creates an instance of a websockets brokerage /// </summary> /// <param name="wssUrl">Websockets base url</param> /// <param name="websocket">Websocket client instance</param> /// <param name="restClient">Rest client instance</param> /// <param name="apiKey">Brokerage api auth key</param> /// <param name="apiSecret">Brokerage api auth secret</param> /// <param name="market">Name of market</param> /// <param name="name">Name of brokerage</param> public BaseWebsocketsBrokerage(string wssUrl, IWebSocket websocket, IRestClient restClient, string apiKey, string apiSecret, string market, string name) : base(name) { WebSocket = websocket; WebSocket.Initialize(wssUrl); RestClient = restClient; _market = market; ApiSecret = apiSecret; ApiKey = apiKey; }
/// <summary> /// Creates an instance of a websockets brokerage /// </summary> /// <param name="wssUrl">Websockets base url</param> /// <param name="websocket">Websocket client instance</param> /// <param name="restClient">Rest client instance</param> /// <param name="apiKey">Brokerage api auth key</param> /// <param name="apiSecret">Brokerage api auth secret</param> /// <param name="brokerageMarket">Name of market</param> /// <param name="name">Name of brokerage</param> public BaseWebsocketsBrokerage(string wssUrl, IWebSocket websocket, IRestClient restClient, string apiKey, string apiSecret, string brokerageMarket, string name) : base(name) { WebSocket = websocket; WebSocket.Initialize(wssUrl); WebSocket.Message += OnMessage; WebSocket.Error += OnError; RestClient = restClient; BrokerageMarket = brokerageMarket; ApiSecret = apiSecret; ApiKey = apiKey; }