Python, Binance и потоковые веб-сокеты - PullRequest
0 голосов
/ 25 ноября 2018

Мне нужна помощь экспертов по веб-сокету.У меня есть этот код:

socket_list=[] # For the web socket creation
for i in range (0, (len(coin_list)-1)): # coin_list contains some pairs ('ADABTC', 'ETHBTC',...)
    socket_list.append({'symbol':coin_list[i], 'bm':'', 'conn_key':''})

# Starts the websocket
def socket_execution():
    for i in range (0, len(coin_list)-1): #Coin
        socket_list[i]['bm'] = BinanceSocketManager(client)
        socket_list[i]['conn_key'] = socket_list[i]['bm'].start_symbol_ticker_socket(socket_list[i]['symbol'], process_message)
        socket_list[i]['bm'].start()

# Stops the websocket
def socket_stop():
    for i in range (0, len(coin_list)-1):
        socket_list[i]['bm'].stop_socket(socket_list[i]['conn_key'])

# websocket code
def process_message(msg):
    print(msg['s'] + '-' + str(b))
    #print('\n')

# Some function I created
    for x in range (1, 10):
        print (x)
    return 1

# main code
for b in range (1, 3): # I want to run the code three times
    wait = myfunction() # THIS IS THE PROBLEM! IT OPENS THE SOCKET WHILE IS PRINTING X
    while wait==0:
        time.sleep(0.1)
    print('Starting socket')
    socket_execution()
    time.sleep(60) # I want the socket to be opened for a minute
    socket_stop()
    print ('Socket stopped')
    time.sleep(5)

reactor.stop()

Но он продолжает печатать сообщение между X. ¿Как мне решить это?Я хотел бы, чтобы это делалось одно, а потом другое, но оно продолжает идти по отдельным потокам.

...