Есть два файла со скриптами на питоне.
Один слушает вэбсокеты в асинхронном режиме, второй принимает сообщения из телеграм.
По отдельности нормально работают.
Их части (при публикации слетают отступы, оставлю только самое важное):
#1:
async def socket(websocket, path):
await addUser(websocket)
#слушаем и получаем данные из вэбсокета
start_server = websockets.serve(socket, '127.0.0.1', 5678)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
#2
from telethon import TelegramClient, sync, events
client = TelegramClient('session_name', api_id, api_hash)
@client.on(events.NewMessage())
async def normal_handler(event):
if str(type(event.message.to_id)) == "<class 'telethon.tl.types.PeerChannel'>":
print(event.message.to_dict()['message'])
client.start()
client.run_until_disconnected()
Соединил все функции в один файл. Не понимаю, как сделать чтобы они выполнялись вместе.
Если запускать сначала один, потом второй :
client.start()
client.run_until_disconnected()
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
То до сокетов не доходит. Только телеграм отрабатывает.
Пытался офорить вызов так :
async def listen_all():
task1 = asyncio.create_task(client.run_until_disconnected())
task2 = asyncio.create_task(start_server)
await asyncio.gather(task1,task2)
start_server = websockets.serve(socket, '127.0.0.1', 5678)
client.start()
asyncio.run(listen_all())
Получаю рантайм эррор