protected void ProcessSubscrError(WebSocketErrorMessage subscrError) { string error = string.Format("{0}. Symbol = {1}", subscrError.error, subscrError.Symbol); BitmexMarketDataErrorWrapper errorWrapper = new BitmexMarketDataErrorWrapper(subscrError.Symbol, error); OnMessageRcv(errorWrapper); }
public void OnEvent(string resp) { WebSocketResponseMessage wsResp = wsResp = JsonConvert.DeserializeObject <WebSocketResponseMessage>(resp); lock (tSubscrLock) { if (wsResp.IsResponse())//We have the response to a subscription { WebSocketSubscriptionResponse requestRespSubscr = JsonConvert.DeserializeObject <WebSocketSubscriptionResponse>(resp); if (ResponseRequestSubscriptions.ContainsKey(requestRespSubscr.GetSubscriptionEvent())) { WebSocketSubscriptionResponse requestRespEvent = ResponseRequestSubscriptions[requestRespSubscr.GetSubscriptionEvent()]; requestRespEvent.RunSubscritionEvent(requestRespSubscr); } } else if (resp.Contains("error")) { WebSocketErrorMessage wsError = JsonConvert.DeserializeObject <WebSocketErrorMessage>(resp); if (wsError.request != null) { foreach (string ev in wsError.request.args) { string[] fields = ev.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); string key = fields[0]; string symbol = fields.Length > 1 ? fields[1] : null; WebSocketSubscriptionEvent subscrEvent = EventSubscriptions[key]; if (subscrEvent != null) { wsError.Symbol = symbol; subscrEvent.RunEvent(wsError); } } } else { ProcessSubscriptionEvent(resp); } } else //We have an event from a subscription { ProcessSubscriptionEvent(resp); } } }