public override void Dispose() { try { if (ws_source_private != null) { ws_source_private.Dispose(); ws_source_private.MessageEvent -= WsSourceOnMessageEvent; ws_source_private = null; } if (ws_source_public != null) { ws_source_public.Dispose(); ws_source_public.MessageEvent -= WsSourceOnMessageEvent; ws_source_public = null; } if (cancel_token_source != null && !cancel_token_source.IsCancellationRequested) { cancel_token_source.Cancel(); } market_mepth_creator = new BybitMarketDepthCreator(); cancel_token_source = new CancellationTokenSource(); client = null; } catch (Exception e) { SendLogMessage("Bybit dispose error: " + e, LogMessageType.Error); } }
public override void Connect() { public_key = ((ServerParameterString)ServerParameters[0]).Value; secret_key = ((ServerParameterPassword)ServerParameters[1]).Value; futures_type = ((ServerParameterEnum)ServerParameters[2]).Value; net_type = ((ServerParameterEnum)ServerParameters[3]).Value; if (futures_type != "Inverse Perpetual" && net_type != "TestNet") { client = new Client(public_key, secret_key, false, true); } else if (futures_type != "Inverse Perpetual" && net_type == "TestNet") { client = new Client(public_key, secret_key, false, false); } else if (futures_type == "Inverse Perpetual" && net_type != "TestNet") { client = new Client(public_key, secret_key, true, true); } else if (futures_type == "Inverse Perpetual" && net_type == "TestNet") { client = new Client(public_key, secret_key, true, false); } cancel_token_source = new CancellationTokenSource(); market_mepth_creator = new BybitMarketDepthCreator(); StartMessageReader(); ws_source_private = new WsSource(client.WsPrivateUrl); ws_source_private.MessageEvent += WsSourceOnMessageEvent; ws_source_private.Start(); ws_source_public = new WsSource(client.WsPublicUrl); ws_source_public.MessageEvent += WsSourceOnMessageEvent; ws_source_public.Start(); }