Я пытаюсь запускать задачи асинхронно, но мне нужно, чтобы мой websocket.client
подключился до того, как другие задачи смогут работать. чтобы синхронизировать этот шаг, я ждал websockets.client.connect()
и в основной функции помещал свой def connect
в событие l oop. Теперь, когда я запускаю программу, я получаю оператор печати, который помещаю в начало функции, поэтому я знаю, что он вызывается, однако, похоже, есть проблема с функцией подключения в моем def. Я не знаю, связана ли это с функцией или с тем, как я ее вызываю, но она никогда не дает никаких ошибок, даже когда я принудительно закрываю программу. Программа просто продолжает работать без ошибок, пока я ее не закрою. Я разместил соответствующий код ниже, любая помощь будет очень признательна, спасибо. функции и main ниже:
async def connect(self):
print('connect initiated...')
uri = 'wss://' + userprincipalsresponse['streamerInfo']['streamerSocketUrl'] + '/ws'
print(uri)
self.connection = await websockets.client.connect(uri)
if self.connection.open:
print('Connection established')
return self.connection
main:
if __name__ == '__main__':
# create clinet object
client = WebSocketClient()
# define event loop
loop = asyncio.get_event_loop()
# start a connection to websocket
connection = loop.run_until_complete(client.connect())