Ejemplo n.º 1
0
        //[TestMethod]
        //public void GetTradesByTimestampAsyncTest()
        //{
        //    var socketApi = CreateConnectedApi();
        //    string symbol = "ETHBTC";
        //    //DateTime from = new DateTime(2018, 5, 5, 12, 59, 0, DateTimeKind.Utc);
        //    //DateTime till = new DateTime(2018, 5, 5, 13, 0, 0, DateTimeKind.Utc);

        //    var response = socketApi.GetTradesByTimestampAsync(symbol, HitSort.Desc).Result;

        //    ResponseBasicCheck(response);

        //    Assert.AreNotEqual(0, response.Result.Length);
        //}

        //[TestMethod]
        //public void GetTradesByIdAsyncTest()
        //{
        //    var socketApi = CreateConnectedApi();
        //    string symbol = "ETHBTC";

        //    var response = socketApi.GetTradesByIdAsync(symbol, HitSort.Desc, limit: 3).Result;

        //    ResponseBasicCheck(response);

        //    Assert.AreNotEqual(0, response.Result.Length);
        //}

        #region Misc
        private static HitSocketApi CreateConnectedApi()
        {
            var socketApi = new HitSocketApi();

            socketApi.ConnectAsync().Wait();

            Assert.AreEqual(HitConnectionState.Connected, socketApi.ConnectionState);

            return(socketApi);
        }
Ejemplo n.º 2
0
        public void ConnectAsyncDisconnectAsyncTest()
        {
            var timeout = TimeSpan.FromSeconds(10);

            var cancellationTokenSource = new CancellationTokenSource(timeout);

            var lastConnectionState = HitConnectionState.PrepareToConnect;

            void ClientConnectionStateChanged(HitSocketApi hitSocketApi, HitEventArgs e)
            {
                lastConnectionState = e.ConnectionState;

                if (lastConnectionState == HitConnectionState.Connected || lastConnectionState == HitConnectionState.Disconnected || lastConnectionState == HitConnectionState.Failed)
                {
                    cancellationTokenSource.Cancel();
                }
            }

            var client = new HitSocketApi();

            client.ConnectionStateChanged += ClientConnectionStateChanged;

            client.ConnectAsync().Wait(cancellationTokenSource.Token);

            try
            {
                Task.Delay(timeout, cancellationTokenSource.Token).Wait(cancellationTokenSource.Token);
            }
            catch
            { }

            Assert.AreEqual(HitConnectionState.Connected, lastConnectionState);

            client.DisconnectAsync().Wait();

            Assert.AreEqual(HitConnectionState.Disconnected, lastConnectionState);
        }
        public void InitWebSocket()
        {
            int count = 0;

            _hitbctSocketApi.ConnectAsync().ContinueWith(x =>
            {
                var resultT = _hitbctSocketApi.LoginAsync().Result;
                _lstTickers.ForEach(ticker =>
                {
                    System.Threading.Thread.Sleep(300);
                    _hitbctSocketApi.SubscribeOrderbookAsync(ticker.Symbol).ContinueWith(result =>
                    {
                        Console.WriteLine(++count + ") " + ticker.Symbol);
                        if (!result.Result.Result)
                        {
                            throw new Exception();
                        }
                    });
                });
            });
            _hitbctSocketApi.Notification += (api, args) =>
            {
                if (args.OrderBook != null)
                {
                    var orderbook = args.OrderBook;

                    UpdateOrderBook(orderbook.Symbol, orderbook.Bids.ToList(), orderbook.Asks.ToList(), orderbook.Sequence);

                    if (args.NotificationMethod == HitNotificationMethod.SnapshotOrderBook)
                    {
                        _countPairInizialized++;
                    }
                }
            };

            void PrintOrderbook(HitOrderBookData hitOrderBookData)
            {
                using (StreamWriter writetext = File.AppendText("C:\\log\\log.txt"))
                {
                    string text = "[" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + "]  " + hitOrderBookData.Sequence + "\r\n";

                    text += "BIDS \t\t\t\tASK\r\n";
                    int length = hitOrderBookData.Bids.Length > hitOrderBookData.Asks.Length
                        ? hitOrderBookData.Bids.Length
                        : hitOrderBookData.Asks.Length;

                    for (int j = 0; j < length; j++)
                    {
                        if (hitOrderBookData.Bids.Length - 1 < j)
                        {
                            text += string.Empty.PadRight(10) + " " + String.Empty.PadRight(10) + "\t\t\t\t";
                        }
                        else
                        {
                            text += hitOrderBookData.Bids[j].Price.ToString().PadRight(10) + " " + hitOrderBookData.Bids[j].Size.ToString().PadRight(10) + "\t\t\t\t";
                        }

                        if (hitOrderBookData.Asks.Length - 1 < j)
                        {
                            text += string.Empty.PadRight(10) + " " + String.Empty.PadRight(10) + "\r\n";
                        }
                        else
                        {
                            text += hitOrderBookData.Asks[j].Price.ToString().PadRight(10) + " " + hitOrderBookData.Asks[j].Size.ToString().PadRight(10) + "\r\n";
                        }
                    }

                    writetext.Write(text + "\r\n\r\n\r\n");
                    writetext.Close();
                }
            }
        }