Post
Topic
Board Кодеры
Re: Проблемы с api yobit
by
ANV
on 09/06/2018, 21:45:11 UTC
Во первых, парсинг занимает больше времени, т.к. сначала вы делаете запрос, а потом получаете ответ.
При использовании websocket вы просто подписываетесь, например, на тикер и получаете его с заданной периодичностью. Для примера, можете попробовать парсить страницу половника для получения цены для eth/btc и подписаться на тикет по websocket. Я практически уверен, что вы больше половины изменений пропустите пока будете парсить страничку.
Что касается huobi, то там достаточно в качестве id передавать, например, unix timestamp. Ну или каждой паре присвойте уникальный id и его передавайте. По моим наблюдениям, id используется исключительно для ваших внутренних нужд.
Не уверен, что websocket быстрее, чем обновление по ajax. Время же самого парсинга на современном компе можно не учитывать по сравнению с задержками пакетов в пути. Попробуйте ping huobi.com или binance.com. Ключ увеличения времени -w. И попробуйте tracert, после чего о быстродействии парсинга на компьютере забудете. Что касается websocket, я пробовал делать запросы, только не помню на какой бирже. Мне показалось, что чем на большее количество пар подписываешься тем реже приходят ответы по конкретной паре. Но не уверен.
Что касается совета попробовать websocket на полыни, это я ответил в соседней ветке, как это можно делать))).
Что-то не получается с huobi получить данные. Ставил разные id, но следующие строки не работают.
{"sub":"market.btcusdt.trade.detail","id":"1"}
{"sub":"market.btcusdt.trade.detail","id":"1528578989"}
{"req":"market.ethbtc.kline.1min","id":"10"}
{"req":"market.ethbtc.kline.1min","id":"1528578916"}
Может надо формировать id, как nonce в privat api: long nonce = (long)(DateTime.UtcNow - Epoch).TotalSeconds;
Или формат неверный? Пробовал здесь http://websocket.org/echo.html на коннекте wss://api.huobi.pro/ws