AsyncClient python3 socketio
Я пытаюсь непрерывно получать orderbook с биржи stex, там используется socketio. Я пытаюсь получать обновления, но спустя несколько обновлений скрипт падает с ошибкой socketio.exceptions.BadNamespaceError: / is not a connected namespace после разрыва соединения.
async def subscribe_quote_ws(pair, rates_dict):
subscribe_period = datetime.timedelta(hours=8)
url = 'https://socket.stex.com'
sell_client = socketio.AsyncClient()
buy_client = socketio.AsyncClient()
await buy_client.connect(url, transports=['websocket'])
await sell_client.connect(url, transports=['websocket'])
@buy_client.event
def handler_func(msg, order):
print(msg, order)
@buy_client.event
def connect():
print("I'm connected!")
@buy_client.event
def connect_error(data):
print("The connection failed!")
@buy_client.event
def disconnect():
print("I'm disconnected!")
@sell_client.event
def handler_func(msg, order):
print(msg, order)
@sell_client.event
def connect():
print("I'm connected!")
@sell_client.event
def connect_error(data):
print("The connection failed!")
@sell_client.event
def disconnect():
print("I'm disconnected!")
channel = 'sell' + '_data' + str(1287)
channel2 = 'buy' + '_data' + str(1287)
while True:
await sell_client.emit('subscribe', {
'channel': channel,
'auth': {}
})
await buy_client.emit('subscribe', {
'channel': channel2,
'auth': {}
})
sell_client.on("App\\Events\\GlassRowChanged", handler_func)
buy_client.on("App\\Events\\GlassRowChanged", handler_func)
await asyncio.sleep(4)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(subscribe_quote_ws(['LONG', 'USDT'], 0))
Подскажите пожалуйста, как правильно оформить получение данных?