我们可以在一个应用程序中使用两个 MTProto 连接吗?

Can we use two MTProto connections in a single app?

您好,我正在尝试 运行 在单个应用程序(工作人员)中同时使用“用户机器人”和“机器人帐户”。

这两个连接就是tbot[main bot]ubot[userbot]。例如:

tbot = TelegramClient("myapp", API_KEY, API_HASH)

tbot.start(bot_token=TOKEN)

ubot = TelegramClient(StringSession(STRING_SESSION), API_KEY, API_HASH)

ubot.start()

但问题是这两个连接不能同时 运行,两个连接都在第一个 (tbot) 启动后立即退出

有什么我可以在这里做的吗?

尝试使用 python threading

import threading

# ...

tbot = TelegramClient("myapp", API_KEY, API_HASH)

tbot_thread = threading.Thread(target=tbot.start, kwargs={'bot_token': TOKEN})
tbot_thread.start()

ubot = TelegramClient(StringSession(STRING_SESSION), API_KEY, API_HASH)

ubot_thread = threading.Thread(target=ubot.start)
ubot_thread.start()

所以每个客户端都会在单独的Thread中单独启动,而不是在主线程中等待。如果其他方法失败 - 请查看日志。