Полоникс и паутина
=== ПРОСТОЙ И КОРОТКИЙ ===
У кого-нибудь есть работающее приложение, которое в эти дни общается с Poloniex через WAMP (январь 2018 г.)?=== БОЛЬШЕ КОНКРЕТНО ===
Я использовал несколько источников информации, чтобы заставить это работать, используя combo: autobahn-cpp & C++. ОС Windows 10. Мне удалось подключиться к wss://api.poloniex.com, realm1. Плюс я смог подписаться и получить подписной ID. Но я никогда не получал никаких событий, даже когда все установилось.=== RESEARCH ===Во время исследования в сети я увидел много противоречивой информации:1. Утверждает, что следует использовать wss://api2.poloniex.com, а имена каналов на самом деле являются числами - Как подключиться к API веб-сокета poloniex.com с помощью библиотеки python2. Этот ответ дал мне базовый код, но я получаю больше, чем просто соединения, а также следуя этому ответу - wss://api.poloniex.com - правильный адрес - Соединение с Poloniex Push-API3. Я видел пост (извините, потерял ссылку), были комментарии, что реализация websockets в основном не работает на poloniex. Они были размещены 6 месяцев назад.=== SPECS ===1. Windows 102. Автобан-Cpp3. wss: //api.poloniex.com: 443; realm14. Различные подписки: тикер, BTC_ETH, 148, 1002 и т. Д.5. Исходный код, который я получил отсюда=== ПОМОЖЕТ КАК ХОРОШО ===
Есть ли способ получить все действующие подписки или, возможно, те, которые имеют более 0 подписчиков? Я имею в виду, есть ли у WAMP способ сделать это?
Есть ли какие-либо известные проблемы с Autobahn-Cpp и Poloniex Combo?
Есть ли более простой способ проверить WAMP в другом месте, чтобы убедиться, что автобан не является проблемой? Как и любые другие хорошо документированные и поддерживаемые онлайн-проекты, которые принимают WAMP-соединение?
3 ответа
Кажется, что веб-сокеты в Poloniex нестабильны. Поэтому я могу остановить свои попытки заставить Autobahn-Cpp работать с ним хотя бы сейчас и двигаться дальше.
Я могу получить правильные данные из книги заказов на тики от wss://api2.poloniex.com, использующей python3, но иногда канал 1002 может прекратить посылать новую информацию о тиках.
wss://api.poloniex.com:443; realm1
Это может быть проблемой, так как я использую api2, и вот код, который работает и работает последние 2 квартала без остановок. Это в Python, но должно быть достаточно легко портировать на C++.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import websocket
import json
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
connection.close()
def on_open(ws):
print("ONOPEN")
ws.send(json.dumps({'command':'subscribe','channel':'BTC_ETH'}))
def on_message(ws, message):
message = json.loads(message)
print(message)
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://api2.poloniex.com/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
код не требует пояснений (вы можете проверить все каналы / пары на веб-сайте API Poloniex), просто сохраните его и запустите в терминале
python3 fileName.py
должен предоставить Вам BTCETH необработанный поток ордеров и сделок на выходе консоли.
Играя с сообщением / подписками, Вы можете делать с ним все, что пожелаете.