Author

Topic: Можно ли с Bittrex получать ланные по websocket не исполь&#1079 (Read 213 times)

ANV
jr. member
Activity: 114
Merit: 1
Все ответы сжимаются сервером с помощью GZip (через API «deflate» - нет заголовков) и base64, закодированных до передачи.
https://bittrex.github.io/

Ключи:
https://bittrex.github.io/#appendix-a-minified-json-keys

Проект: https://github.com/Bittrex/bittrex.github.io

Скачал с гитхаба пример  https://bittrex.github.io/samples/WebsocketSample.cs , NuGet подключил клиента SignalR, закомментировал строки авторизации. Работает!

using System;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.IO.Compression;
using System.Security.Cryptography;
using Microsoft.AspNet.SignalR.Client;

namespace WebsocketSample
{
    public sealed class BittrexWebsocket
    {
        public delegate void BittrexCallback(string info);

        private HubConnection _hubConnection { get; }
        private IHubProxy _hubProxy { get; }
        private BittrexCallback _updateExchangeState { get; }
        private BittrexCallback _updateOrderState { get; }
        private BittrexCallback _updateBalanceState { get; }

        public BittrexWebsocket(
            string connectionUrl,
            BittrexCallback updateExchangeState//,
            //BittrexCallback updateOrderState,
            //BittrexCallback updateBalanceState
            )
        {
            // Set delegates
            _updateExchangeState = updateExchangeState;
            //_updateOrderState = updateOrderState;
            //_updateBalanceState = updateBalanceState;

            // Create connection to c2 SignalR hub
            _hubConnection = new HubConnection(connectionUrl);
            _hubProxy = _hubConnection.CreateHubProxy("c2");

            // Register callback for uE (exchange state delta) events
            _hubProxy.On(
                "uE",
                exchangeStateDelta => _updateExchangeState?.Invoke(exchangeStateDelta)
                );

            // Register callback for uO (order status change) events
            _hubProxy.On(
                "uO",
                orderStateDelta => _updateOrderState?.Invoke(orderStateDelta)
                );

            // Register callback for uB (balance status change) events
            _hubProxy.On(
                "uB",
                balanceStateDelta => _updateBalanceState?.Invoke(balanceStateDelta)
                );

            _hubConnection.Start().Wait();
        }

        public void Shutdown() => _hubConnection.Stop();

        // marketName example: "BTC-LTC"
        public async Task SubscribeToExchangeDeltas(string marketName) => await _hubProxy.Invoke("SubscribeToExchangeDeltas", marketName);

        // The return of GetAuthContext is a challenge string. Call CreateSignature(apiSecret, challenge)
        // for the response to the challenge, and pass it to Authenticate().
        public async Task GetAuthContext(string apiKey) => await _hubProxy.Invoke("GetAuthContext", apiKey);

        public async Task Authenticate(string apiKey, string signedChallenge) => await _hubProxy.Invoke("Authenticate", apiKey, signedChallenge);

        // Decode converts Bittrex CoreHub2 socket wire protocol data into JSON.
        // Data goes from base64 encoded to gzip (byte[]) to minifed JSON.
        public static string Decode(string wireData)
        {
            // Step 1: Base64 decode the wire data into a gzip blob
            byte[] gzipData = Convert.FromBase64String(wireData);

            // Step 2: Decompress gzip blob into minified JSON
            using (var decompressedStream = new MemoryStream())
            using (var compressedStream = new MemoryStream(gzipData))
            using (var deflateStream = new DeflateStream(compressedStream, CompressionMode.Decompress))
            {
                deflateStream.CopyTo(decompressedStream);
                decompressedStream.Position = 0;

                using (var streamReader = new StreamReader(decompressedStream))
                {
                    return streamReader.ReadToEnd();
                }
            }
        }

        public static string CreateSignature(string apiSecret, string challenge)
        {
            // Get hash by using apiSecret as key, and challenge as data
            var hmacSha512 = new HMACSHA512(Encoding.ASCII.GetBytes(apiSecret));
            var hash = hmacSha512.ComputeHash(Encoding.ASCII.GetBytes(challenge));
            return BitConverter.ToString(hash).Replace("-", string.Empty);
        }
    }

    class Program
    {
        static public BittrexWebsocket.BittrexCallback CreateCallback(string name)
        {
            //
            // In a real app, your code would do something useful based on the
            // information accompanying each event.
            //

            return (info) =>
            {
                Console.WriteLine($"Callback Invoked: {name}");

                Console.WriteLine(
                    BittrexWebsocket.Decode(info)
                    );
            };
        }

        static void Main(string[] args)
        {
            Task task = Task.Run(
                async () =>
                {
                    string apiKey = "YOUR_API_KEY";
                    string apiSecret = "YOUR_API_SECRET";
                    string baseUrl = "https://beta.bittrex.com/signalr";

                    var btx = new BittrexWebsocket(
                        baseUrl,
                        CreateCallback("exchange")//,
                        //CreateCallback("order"),
                        //CreateCallback("balance")
                        );

                    // If we successfully authenticate, we'll be subscribed to the uO and uB events.
                    //var isAuthenticated = await btx.Authenticate(
                    //    apiKey,
                    //    BittrexWebsocket.CreateSignature(apiSecret, await btx.GetAuthContext(apiKey))
                    //    );

                    // Register for orderbook updates on the BTC-ETH market
                    await btx.SubscribeToExchangeDeltas("BTC-ETH");
                });

            task.Wait();

            Console.WriteLine("Press enter to exit sample...");
            Console.ReadLine();
        }
    }
}
ANV
jr. member
Activity: 114
Merit: 1
Если не ошибся, то и не base58. Какая-то другая кодировка, после которой, возможно, еще надо раззиповать. Хороший сайт конвертаций разных форматов: https://www.browserling.com/tools/base58-encode
member
Activity: 980
Merit: 48
Смотрите
Code:
{"H":"c2","M":"SubscribeToSummaryLiteDeltas","A":[],"I":0}

"A":[] - это массив значений (запрашиваем массив (чего?, скорее всего SubscribeToSummaryLiteDeltas тикеры по всем парам))


Code:
{"C":"d-39358AEE-B,0|Yx6,0|Yx7,2|P,283","M":[{"H":"C2","M":"uL","A":["XVhZduM4DLyLv7v5CILgkj9v42Ri2WnZSdzpNzeYOUG/vvtAIiQBymdS4gJUFYr5vTlsnn793nSbp83uvv++fTlsvm3+3Tx55/kHUk7fNv9tnoJL/s83hetfFS4QVRxxMbligLv9212vGGolWZGyBf40uJRgxHmHFnc260UobWd0BAZ30TjymBqOXCCDu58WHPlSS2zrkasGuO8/9cY1e5CNU9S4w76fcRBDJmoXRiwuF4PsdLGJQqpyZTI1PNx3emeKMQiump2Pu9vddk9qE1yxwG6vcJjJtyNm56vB9XtT64kN3gEa3F3hAoCXKwORS6Yrx8ebWhGSD1JtF0yXT9vuqIFUkm9LhjVy9/O+QAO3EGppUHDFdPB0uS5r5kq88HRtU++X0+XlZgrpKU9LZgN9NS1Evrjopa7WPJ+MsAjL1Gs0Zzyb1gw1l3u7mDSu21625ohReg3ZxWCQe3VrnxNhKzl4Vwwdu2NvFOgBZGs07OmuZusIMcK0NRn+XLYfRjJTdVhapjiXndU0ibSSi3a941X3ZfCSKh20Wr2cTBWpCCXIgani5WHWC4lE07ygYdm1u7woimfMURixksLb9Wx8LE0kCyE7MFr4cX/vFijw3qLr6F0wx+yPb9qjYk1t80ir3fsP00KfY+t1dNlc57Y1LgqVu92AwYFhz213MMAMJCsmu+JZVTJ6LH5mmbXHW3/RR0QvdESuj50It/u1/1tjS519KoNF9lt9n1jYhUZkYX2ZUt4+X/6yZEt+Ulg2tbz379ZOWbReNBtMjT63H0fNI8KU20ELrcT42KtOQmHpzF5lrfdx7kyZiJq8K6009ujUuKmx8k+jel118vGlNIGACI1twEBT96/9WZ2RCIQbKa9Y9HVcVmQt1hLqRCIrx6/+oUnEjtF8oDBw7s7x/vx9e9DOghil4hF5HIO3UNMczNg2rw6Dxem9c01lsoLFW0acST4hsAmJB9Wicbu9XJr5wtM9Rqk3D0eXgkWa6IPViyaC8vIRaMRIkfK0dUSD05EmJV+TJAsmJBigyjQpxzJZ/mBBUQP3H9onI3BvmsCSGl8D8NAZfYUgoiGVukacSV2+gDg+k8wb4PGiYlcoCSdKFEekgWpo8xgenCVIYsgrnN45pyyJlD9yxXT69K4zSKgow91zQzXuufthrA8CTfHM9PlsUhIzQhiWV/uel5QElUNc9HKTTMojR+T74pGQ2fein1K4IcQqBECdQnPwSWXNEapSAHBgTyLqEFe34Rk7A3OhWFGGe0H+hUGaIZszwFSfbHHaoYhTV/FTB019rnszGZhjjRKprvRy7RbuQBn2lVmcknqmDMi3rRrGwONdluTBiYaOq7Gdec6VuTk1WOinHrLENxcPj2rAj8heJS+gGiXzDWZvKvSj147LQwGnN000TdQ5IKWEtYho+PFjiDGMTjM/IkkSKHFFjNXsTFj42dB2h5Xlvr+eNNsySgZi/ynmPkZggF6mIVupOeXHi37XANNcbIpDg+34asJmdjVoJcqFS2Gh2u8DBfFnRIfmNnbCRl5QiM7IYKxFjdhAbKdTpAOsjoxwH70e72yn2CReMq7GkpqdWHnE1plvfkVNMzwHumfROOirv98Odz0+OU6mVH2ZtMsJAtTTfITPo4wfVy3hzDeDUipxFqz2g8nBePFsv6ghBI6RitjyhVBmKGoOiQf6bMuehb3a4LC9PTc8v/+ZLYVTRZYgmQrrR/F8/GB+eQK7yYCe4g9TJHBmWIbOCJ8tuPLqNJ6+FZPjPA9oVyx89kL+E+jbxlqQnXMxhgZ/zEICVgc3XaZp9Fz8JUaM4NnEOLDwwWOQ/MJq4ZStHgAj+rZYLSBfVMLJkKQYvJBwBM98BR74g00kRBnDhdUd1buv4RfWEutg6WmOFEgRd0TPzIU6/M8lLkXkPMtvvCEF/fPnfw=="]}]}

а здесь "A":["123"] прилетает обратка, это массив значений. Предположение, в [] есть разделитель значений(чисел и/или строк) судя по символам, том подобие base64, но не base64
ANV
jr. member
Activity: 114
Merit: 1
Вряд ли SignalR разработал свой архиватор. Скорее всего надо с кодировкой угадать и раззиповывать длинную строку Volume присылаемого json.
#Cryptoman, большое спасибо.
jr. member
Activity: 224
Merit: 3
Development of any software for Windows
Code:
строка запроса(я ее из браузера получил)
wss://socket.bittrex.com/signalr/connect?transport=webSockets&clientProtocol=1.5&connectionToken=nkBZjTrF0JZhsO8ATgQF7t6YJxWhgfCLMuVpKBG7fkDIgngUrPnbZLKlrbZoXpxdsph86%2BD5MPhGeEM%2FUhR1Q4GuNbZpdh9lmObBNGD0CaaB9XMm&connectionData=%5B%7B%22name%22%3A%22c2%22%7D%5D&tid=10

затем отправить это SEND-> {"H":"c2","M":"SubscribeToSummaryLiteDeltas","A":[],"I":0}

пойдут (бинарные?) фреймы типа этого

{"C":"d-39358AEE-B,0|Yx6,0|Yx7,2|P,283","M":[{"H":"C2","M":"uL","A":["XVhZduM4DLyLv7v5CILgkj9v42Ri2WnZSdzpNzeYOUG/vvtAIiQBymdS4gJUFYr5vTlsnn793nSbp83uvv++fTlsvm3+3Tx55/kHUk7fNv9tnoJL/s83hetfFS4QVRxxMbligLv9212vGGolWZGyBf40uJRgxHmHFnc260UobWd0BAZ30TjymBqOXCCDu58WHPlSS2zrkasGuO8/9cY1e5CNU9S4w76fcRBDJmoXRiwuF4PsdLGJQqpyZTI1PNx3emeKMQiump2Pu9vddk9qE1yxwG6vcJjJtyNm56vB9XtT64kN3gEa3F3hAoCXKwORS6Yrx8ebWhGSD1JtF0yXT9vuqIFUkm9LhjVy9/O+QAO3EGppUHDFdPB0uS5r5kq88HRtU++X0+XlZgrpKU9LZgN9NS1Evrjopa7WPJ+MsAjL1Gs0Zzyb1gw1l3u7mDSu21625ohReg3ZxWCQe3VrnxNhKzl4Vwwdu2NvFOgBZGs07OmuZusIMcK0NRn+XLYfRjJTdVhapjiXndU0ibSSi3a941X3ZfCSKh20Wr2cTBWpCCXIgani5WHWC4lE07ygYdm1u7woimfMURixksLb9Wx8LE0kCyE7MFr4cX/vFijw3qLr6F0wx+yPb9qjYk1t80ir3fsP00KfY+t1dNlc57Y1LgqVu92AwYFhz213MMAMJCsmu+JZVTJ6LH5mmbXHW3/RR0QvdESuj50It/u1/1tjS519KoNF9lt9n1jYhUZkYX2ZUt4+X/6yZEt+Ulg2tbz379ZOWbReNBtMjT63H0fNI8KU20ELrcT42KtOQmHpzF5lrfdx7kyZiJq8K6009ujUuKmx8k+jel118vGlNIGACI1twEBT96/9WZ2RCIQbKa9Y9HVcVmQt1hLqRCIrx6/+oUnEjtF8oDBw7s7x/vx9e9DOghil4hF5HIO3UNMczNg2rw6Dxem9c01lsoLFW0acST4hsAmJB9Wicbu9XJr5wtM9Rqk3D0eXgkWa6IPViyaC8vIRaMRIkfK0dUSD05EmJV+TJAsmJBigyjQpxzJZ/mBBUQP3H9onI3BvmsCSGl8D8NAZfYUgoiGVukacSV2+gDg+k8wb4PGiYlcoCSdKFEekgWpo8xgenCVIYsgrnN45pyyJlD9yxXT69K4zSKgow91zQzXuufthrA8CTfHM9PlsUhIzQhiWV/uel5QElUNc9HKTTMojR+T74pGQ2fein1K4IcQqBECdQnPwSWXNEapSAHBgTyLqEFe34Rk7A3OhWFGGe0H+hUGaIZszwFSfbHHaoYhTV/FTB019rnszGZhjjRKprvRy7RbuQBn2lVmcknqmDMi3rRrGwONdluTBiYaOq7Gdec6VuTk1WOinHrLENxcPj2rAj8heJS+gGiXzDWZvKvSj147LQwGnN000TdQ5IKWEtYho+PFjiDGMTjM/IkkSKHFFjNXsTFj42dB2h5Xlvr+eNNsySgZi/ynmPkZggF6mIVupOeXHi37XANNcbIpDg+34asJmdjVoJcqFS2Gh2u8DBfFnRIfmNnbCRl5QiM7IYKxFjdhAbKdTpAOsjoxwH70e72yn2CReMq7GkpqdWHnE1plvfkVNMzwHumfROOirv98Odz0+OU6mVH2ZtMsJAtTTfITPo4wfVy3hzDeDUipxFqz2g8nBePFsv6ghBI6RitjyhVBmKGoOiQf6bMuehb3a4LC9PTc8v/+ZLYVTRZYgmQrrR/F8/GB+eQK7yYCe4g9TJHBmWIbOCJ8tuPLqNJ6+FZPjPA9oVyx89kL+E+jbxlqQnXMxhgZ/zEICVgc3XaZp9Fz8JUaM4NnEOLDwwWOQ/MJq4ZStHgAj+rZYLSBfVMLJkKQYvJBwBM98BR74g00kRBnDhdUd1buv4RfWEutg6WmOFEgRd0TPzIU6/M8lLkXkPMtvvCEF/fPnfw=="]}]}

Ну вроде всё!
Думал это gzip како-нибудь, но видимо не оноSmiley Раз сходу не получилось, то оставим на попозжеSmiley
newbie
Activity: 17
Merit: 0
Мда... Разговор глухого со слепым...

Почитал API понял, да, согласен, я слетел с контекста.
jr. member
Activity: 224
Merit: 3
Development of any software for Windows
Code:
строка запроса(я ее из браузера получил)
wss://socket.bittrex.com/signalr/connect?transport=webSockets&clientProtocol=1.5&connectionToken=nkBZjTrF0JZhsO8ATgQF7t6YJxWhgfCLMuVpKBG7fkDIgngUrPnbZLKlrbZoXpxdsph86%2BD5MPhGeEM%2FUhR1Q4GuNbZpdh9lmObBNGD0CaaB9XMm&connectionData=%5B%7B%22name%22%3A%22c2%22%7D%5D&tid=10

затем отправить это SEND-> {"H":"c2","M":"SubscribeToSummaryLiteDeltas","A":[],"I":0}

пойдут (бинарные?) фреймы типа этого

{"C":"d-39358AEE-B,0|Yx6,0|Yx7,2|P,283","M":[{"H":"C2","M":"uL","A":["XVhZduM4DLyLv7v5CILgkj9v42Ri2WnZSdzpNzeYOUG/vvtAIiQBymdS4gJUFYr5vTlsnn793nSbp83uvv++fTlsvm3+3Tx55/kHUk7fNv9tnoJL/s83hetfFS4QVRxxMbligLv9212vGGolWZGyBf40uJRgxHmHFnc260UobWd0BAZ30TjymBqOXCCDu58WHPlSS2zrkasGuO8/9cY1e5CNU9S4w76fcRBDJmoXRiwuF4PsdLGJQqpyZTI1PNx3emeKMQiump2Pu9vddk9qE1yxwG6vcJjJtyNm56vB9XtT64kN3gEa3F3hAoCXKwORS6Yrx8ebWhGSD1JtF0yXT9vuqIFUkm9LhjVy9/O+QAO3EGppUHDFdPB0uS5r5kq88HRtU++X0+XlZgrpKU9LZgN9NS1Evrjopa7WPJ+MsAjL1Gs0Zzyb1gw1l3u7mDSu21625ohReg3ZxWCQe3VrnxNhKzl4Vwwdu2NvFOgBZGs07OmuZusIMcK0NRn+XLYfRjJTdVhapjiXndU0ibSSi3a941X3ZfCSKh20Wr2cTBWpCCXIgani5WHWC4lE07ygYdm1u7woimfMURixksLb9Wx8LE0kCyE7MFr4cX/vFijw3qLr6F0wx+yPb9qjYk1t80ir3fsP00KfY+t1dNlc57Y1LgqVu92AwYFhz213MMAMJCsmu+JZVTJ6LH5mmbXHW3/RR0QvdESuj50It/u1/1tjS519KoNF9lt9n1jYhUZkYX2ZUt4+X/6yZEt+Ulg2tbz379ZOWbReNBtMjT63H0fNI8KU20ELrcT42KtOQmHpzF5lrfdx7kyZiJq8K6009ujUuKmx8k+jel118vGlNIGACI1twEBT96/9WZ2RCIQbKa9Y9HVcVmQt1hLqRCIrx6/+oUnEjtF8oDBw7s7x/vx9e9DOghil4hF5HIO3UNMczNg2rw6Dxem9c01lsoLFW0acST4hsAmJB9Wicbu9XJr5wtM9Rqk3D0eXgkWa6IPViyaC8vIRaMRIkfK0dUSD05EmJV+TJAsmJBigyjQpxzJZ/mBBUQP3H9onI3BvmsCSGl8D8NAZfYUgoiGVukacSV2+gDg+k8wb4PGiYlcoCSdKFEekgWpo8xgenCVIYsgrnN45pyyJlD9yxXT69K4zSKgow91zQzXuufthrA8CTfHM9PlsUhIzQhiWV/uel5QElUNc9HKTTMojR+T74pGQ2fein1K4IcQqBECdQnPwSWXNEapSAHBgTyLqEFe34Rk7A3OhWFGGe0H+hUGaIZszwFSfbHHaoYhTV/FTB019rnszGZhjjRKprvRy7RbuQBn2lVmcknqmDMi3rRrGwONdluTBiYaOq7Gdec6VuTk1WOinHrLENxcPj2rAj8heJS+gGiXzDWZvKvSj147LQwGnN000TdQ5IKWEtYho+PFjiDGMTjM/IkkSKHFFjNXsTFj42dB2h5Xlvr+eNNsySgZi/ynmPkZggF6mIVupOeXHi37XANNcbIpDg+34asJmdjVoJcqFS2Gh2u8DBfFnRIfmNnbCRl5QiM7IYKxFjdhAbKdTpAOsjoxwH70e72yn2CReMq7GkpqdWHnE1plvfkVNMzwHumfROOirv98Odz0+OU6mVH2ZtMsJAtTTfITPo4wfVy3hzDeDUipxFqz2g8nBePFsv6ghBI6RitjyhVBmKGoOiQf6bMuehb3a4LC9PTc8v/+ZLYVTRZYgmQrrR/F8/GB+eQK7yYCe4g9TJHBmWIbOCJ8tuPLqNJ6+FZPjPA9oVyx89kL+E+jbxlqQnXMxhgZ/zEICVgc3XaZp9Fz8JUaM4NnEOLDwwWOQ/MJq4ZStHgAj+rZYLSBfVMLJkKQYvJBwBM98BR74g00kRBnDhdUd1buv4RfWEutg6WmOFEgRd0TPzIU6/M8lLkXkPMtvvCEF/fPnfw=="]}]}

Ну вроде всё!
Спасибо. Попробую все это рашифроватьSmiley))
Только там непонятно откуда токен братьSmiley
member
Activity: 980
Merit: 48
Code:
строка запроса(я ее из браузера получил)
wss://socket.bittrex.com/signalr/connect?transport=webSockets&clientProtocol=1.5&connectionToken=nkBZjTrF0JZhsO8ATgQF7t6YJxWhgfCLMuVpKBG7fkDIgngUrPnbZLKlrbZoXpxdsph86%2BD5MPhGeEM%2FUhR1Q4GuNbZpdh9lmObBNGD0CaaB9XMm&connectionData=%5B%7B%22name%22%3A%22c2%22%7D%5D&tid=10

затем отправить это SEND-> {"H":"c2","M":"SubscribeToSummaryLiteDeltas","A":[],"I":0}

пойдут (бинарные?) фреймы типа этого

{"C":"d-39358AEE-B,0|Yx6,0|Yx7,2|P,283","M":[{"H":"C2","M":"uL","A":["XVhZduM4DLyLv7v5CILgkj9v42Ri2WnZSdzpNzeYOUG/vvtAIiQBymdS4gJUFYr5vTlsnn793nSbp83uvv++fTlsvm3+3Tx55/kHUk7fNv9tnoJL/s83hetfFS4QVRxxMbligLv9212vGGolWZGyBf40uJRgxHmHFnc260UobWd0BAZ30TjymBqOXCCDu58WHPlSS2zrkasGuO8/9cY1e5CNU9S4w76fcRBDJmoXRiwuF4PsdLGJQqpyZTI1PNx3emeKMQiump2Pu9vddk9qE1yxwG6vcJjJtyNm56vB9XtT64kN3gEa3F3hAoCXKwORS6Yrx8ebWhGSD1JtF0yXT9vuqIFUkm9LhjVy9/O+QAO3EGppUHDFdPB0uS5r5kq88HRtU++X0+XlZgrpKU9LZgN9NS1Evrjopa7WPJ+MsAjL1Gs0Zzyb1gw1l3u7mDSu21625ohReg3ZxWCQe3VrnxNhKzl4Vwwdu2NvFOgBZGs07OmuZusIMcK0NRn+XLYfRjJTdVhapjiXndU0ibSSi3a941X3ZfCSKh20Wr2cTBWpCCXIgani5WHWC4lE07ygYdm1u7woimfMURixksLb9Wx8LE0kCyE7MFr4cX/vFijw3qLr6F0wx+yPb9qjYk1t80ir3fsP00KfY+t1dNlc57Y1LgqVu92AwYFhz213MMAMJCsmu+JZVTJ6LH5mmbXHW3/RR0QvdESuj50It/u1/1tjS519KoNF9lt9n1jYhUZkYX2ZUt4+X/6yZEt+Ulg2tbz379ZOWbReNBtMjT63H0fNI8KU20ELrcT42KtOQmHpzF5lrfdx7kyZiJq8K6009ujUuKmx8k+jel118vGlNIGACI1twEBT96/9WZ2RCIQbKa9Y9HVcVmQt1hLqRCIrx6/+oUnEjtF8oDBw7s7x/vx9e9DOghil4hF5HIO3UNMczNg2rw6Dxem9c01lsoLFW0acST4hsAmJB9Wicbu9XJr5wtM9Rqk3D0eXgkWa6IPViyaC8vIRaMRIkfK0dUSD05EmJV+TJAsmJBigyjQpxzJZ/mBBUQP3H9onI3BvmsCSGl8D8NAZfYUgoiGVukacSV2+gDg+k8wb4PGiYlcoCSdKFEekgWpo8xgenCVIYsgrnN45pyyJlD9yxXT69K4zSKgow91zQzXuufthrA8CTfHM9PlsUhIzQhiWV/uel5QElUNc9HKTTMojR+T74pGQ2fein1K4IcQqBECdQnPwSWXNEapSAHBgTyLqEFe34Rk7A3OhWFGGe0H+hUGaIZszwFSfbHHaoYhTV/FTB019rnszGZhjjRKprvRy7RbuQBn2lVmcknqmDMi3rRrGwONdluTBiYaOq7Gdec6VuTk1WOinHrLENxcPj2rAj8heJS+gGiXzDWZvKvSj147LQwGnN000TdQ5IKWEtYho+PFjiDGMTjM/IkkSKHFFjNXsTFj42dB2h5Xlvr+eNNsySgZi/ynmPkZggF6mIVupOeXHi37XANNcbIpDg+34asJmdjVoJcqFS2Gh2u8DBfFnRIfmNnbCRl5QiM7IYKxFjdhAbKdTpAOsjoxwH70e72yn2CReMq7GkpqdWHnE1plvfkVNMzwHumfROOirv98Odz0+OU6mVH2ZtMsJAtTTfITPo4wfVy3hzDeDUipxFqz2g8nBePFsv6ghBI6RitjyhVBmKGoOiQf6bMuehb3a4LC9PTc8v/+ZLYVTRZYgmQrrR/F8/GB+eQK7yYCe4g9TJHBmWIbOCJ8tuPLqNJ6+FZPjPA9oVyx89kL+E+jbxlqQnXMxhgZ/zEICVgc3XaZp9Fz8JUaM4NnEOLDwwWOQ/MJq4ZStHgAj+rZYLSBfVMLJkKQYvJBwBM98BR74g00kRBnDhdUd1buv4RfWEutg6WmOFEgRd0TPzIU6/M8lLkXkPMtvvCEF/fPnfw=="]}]}

Ну вроде всё!
jr. member
Activity: 224
Merit: 3
Development of any software for Windows
Какая связь с Bittrex? Топикстартер попросил строку коннекта и формат запроса.

А какая связь с SignalR? Smiley Вопрос вроде: "не используя SignalR". Я задал вопрос для своих целей.
Мда... Разговор глухого со слепым...
newbie
Activity: 17
Merit: 0
Какая связь с Bittrex? Топикстартер попросил строку коннекта и формат запроса.

А какая связь с SignalR? Smiley Вопрос вроде: "не используя SignalR". Я задал вопрос для своих целей.
jr. member
Activity: 224
Merit: 3
Development of any software for Windows
Не подходит для чего?

Данные получить. Суть то у SignalR и Socket.IO одна.
Какая связь с Bittrex? Топикстартер попросил строку коннекта и формат запроса.
newbie
Activity: 17
Merit: 0
Не подходит для чего?

Данные получить. Суть то у SignalR и Socket.IO одна.
jr. member
Activity: 224
Merit: 3
Development of any software for Windows
newbie
Activity: 17
Merit: 0
jr. member
Activity: 224
Merit: 3
Development of any software for Windows
Можно, но ты замучаешься разбирать поток данных, он похож на что-то вроде этого ->

Code:
[р‘KћU|0;ЄљЪщA И9[ю‰˜Vм_ґЁJЕ<ПIзLЈБaЯxІЭЌХOfЊk!sя7Шt¶]_ќДФn5‘зсЭ>u­Е]
А как это сделать? С потоком походу дела разбираться буду.
jr. member
Activity: 322
Merit: 2
Можно, но ты замучаешься разбирать поток данных, он похож на что-то вроде этого ->

Code:
[р‘KћU|0;ЄљЪщA И9[ю‰˜Vм_ґЁJЕ<ПIзLЈБaЯxІЭЌХOfЊk!sя7Шt¶]_ќДФn5‘зсЭ>u­Е]
ANV
jr. member
Activity: 114
Merit: 1
Можно ли с Bittrex получать данные по websocket не используя SignalR и если можно, какие строка коннекта и формат запроса?
Jump to: