Esempio n. 1
0
        public void Connect()
        {
            // 查看有多少种连接
            int j = 0;

            foreach (var cc in ConnectionConfigList)
            {
                // 建立多个连接
                for (int i = 0; i < cc.SessionLimit; ++i)
                {
                    XApi api = new XApi(cc.LibPath);
                    api.Server = cc.Server;
                    api.User   = cc.User;
                    api.Log    = LogManager.GetLogger(string.Format("{0}.{1}.{2}.{3}", api.Server.BrokerID, api.User.UserID, j, i));

                    api.MaxSubscribedInstrumentsCount = cc.SubscribePerSession;

                    api.OnConnectionStatus   = OnConnectionStatus;
                    api.OnRtnDepthMarketData = OnRtnDepthMarketData;

                    api.Connect();

                    XApiList.Add(api);
                }
                ++j;
            }
        }
Esempio n. 2
0
        protected override void OnConnectionStatus(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
        {
            base.OnConnectionStatus(sender, status, ref userLogin, size1);

            // 修改成只处理最后一个,因为一般情况下,最后一个其它事件也是最后到来
            if (sender == XApiList.Last())
            {
                // 由于配置中肯定会设置多个行情连接,所有
                if (status == ConnectionStatus.Logined)
                {
                    TradingDay = userLogin.TradingDay;
                    SaveAsTradingDay();

                    if (null != KdbWriter)
                    {
                        KdbWriter.SetTradingDay(TradingDay);
                    }
                }
                else if (status == ConnectionStatus.Disconnected)
                {
                    // 断开连接,可加入一接断开连接时的保存指令,由于连接数多,5秒之内不重复保存
                    if (null != KdbWriter)
                    {
                        Log.Info("OnConnectionStatus 中被动进行保存");
                        KdbWriter.Save(TradingDay);
                    }
                }
            }
        }
Esempio n. 3
0
        public void Connect()
        {
            XApi api = new XApi(ConnectionConfig.LibPath);

            api.Server = ConnectionConfig.Server;
            api.User   = ConnectionConfig.User;

            api.Log = LogManager.GetLogger(string.Format("{0}.{1}", api.Server.BrokerID, api.User.UserID));
            api.MaxSubscribedInstrumentsCount = ConnectionConfig.SubscribePerSession;

            api.OnConnectionStatus = OnConnectionStatus;
            api.OnRspQryInstrument = OnRspQryInstrument;

            api.Connect();

            XApiList.Add(api);
        }