【问题标题】:Telethon Won't Disconnect ClientTelethon 不会断开客户端连接
【发布时间】:2021-11-24 23:06:12
【问题描述】:

我对 Telethon 有疑问。我有一个 NewMessage() 事件监听器,它工作得很好。但是当使用 CTRL + C 退出脚本并重新启动它时,它不会再次连接到聊天。 我必须手动删除 Telegram 应用中的连接。

我的问题是: 当我按下 CTRL + C 或程序关闭时,如何强制客户端断开连接。

from telethon import TelegramClient, events, sync
import globals, asyncio

client = TelegramClient('anon', 
globals.api_id, globals.api_hash)
@client.on(events.NewMessage(chats=globals.tLink))
async def my_event_handler(event):
    print(event.raw_text)

client.start()
client.run_until_disconnected()

【问题讨论】:

    标签: python telegram telethon


    【解决方案1】:

    如果您需要重复重新启动脚本,则不为每次运行创建单独的/新会话可能是合理的。尝试使用 None 不创建 .session 文件,而不是创建 anon.session。

    client = TelegramClient(None, globals.api_id, globals.api_hash)
    

    【讨论】:

    • 嘿 :) 非常感谢,它成功了!
    【解决方案2】:

    这就是我的做法:

    async def enviar():
       (code)
    
    async def main():
        global ME
        ME = await info_me();
        
        enviar_var = asyncio.create_task(enviar());
    
        await enviar_var;
        
            
    with client:
        try:
            client.loop.run_until_complete(main());
    
        except:
            print("Encerrando...");
            future = asyncio.Future();
            future.set_result("1");
            con.close();#I am using a SQLite database, you can ignore this line
            print("Adeus!");
    

    【讨论】:

      猜你喜欢
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 2021-12-05
      • 2012-04-05
      • 1970-01-01
      相关资源
      最近更新 更多