private void _q_OnRspUserLogin(object sender, IntEventArgs e) { if (e.Value == 0) { Logger.Info($"quote 登录成功:{_investor}"); _q.ReqSubscribeMarketData(_inst); } else { //_q.OnFrontConnected -= _q_OnFrontConnected; //解决登录错误后不断重连导致再不断登录的错误 Logger.Info($"quote 登录错误:{e.Value}"); _q.ReqUserLogout(); } }
//登陆 public void Login(Account account) { if (account != null && mQuoter.IsLogin) { return; } mAccount = account; //前置连接回调 mQuoter.OnFrontConnected += (object sender, EventArgs e) => { mQuoter.ReqUserLogin(account.Investor, account.Password, account.Broker); LogUtils.EnginLog("ctpmd:OnFrontConnected"); }; //登陆回调 mQuoter.OnRspUserLogin += (object sender, IntEventArgs e) => { mQuoter.ReqSubscribeMarketData(mSubscribeMap.Keys.ToArray <string>()); LogUtils.EnginLog("ctpmd:OnRspUserLogin:"******"ctpmd:OnRspUserLogout"); }; //行情回调 mQuoter.OnRtnTick += _onTick; //错误回调 mQuoter.OnRtnError += (object sender, ErrorEventArgs e) => { LogUtils.EnginLog("OnRtnError:" + e.ErrorMsg); }; //开始连接 mQuoter.ReqConnect(account.Server); }