TLsharp CHANNELS_TOO_MUCH异常

时间:2016-09-21 07:26:41

标签: c# api telegram

我一直在使用TLSharp库一周,但最近我遇到了异常:

CHANNELS_TOO_MUCH

我的代码甚至无法通过await client.connect()函数。我没有在库的GitHub存储库中找到任何描述此异常发生原因的文档。我似乎不是因为电报限制而发生的异常,因为它在connect函数中给了我这个例外。

这是我的代码:

public static async Task<TelegramClient> connectTelegram()
{
    store = new FileSessionStore();
    client = new TelegramClient(store, numberToAuthenticate, apiId, apiHash);
    try
    {
        await client.Connect();
    }
    catch (InvalidOperationException e)
    {
        Debug.WriteLine("Invalid Operation Exception");
        if (e.Message.Contains("Couldn't read the packet length"))
        {
            Debug.WriteLine("Couldn't read the packet length");
            Debug.WriteLine("Retying to Connect ...");
        }
        await connectTelegram();
    }
    catch (System.IO.IOException)
    {
        Debug.WriteLine("IO Exception while Connecting");
        Debug.WriteLine("Retrying to Connect ...");
        await connectTelegram();
    }
    catch(Exception e)
    {
        Debug.WriteLine(e.Message):
    }
    return client;
}

1 个答案:

答案 0 :(得分:0)

此例外尚未记录。当我尝试使用相同的会话文件连接电报和调用请求时,我遇到了这个异常。当会话文件被不同的和多个客户端使用时,会话文件似乎已损坏。您所要做的就是删除会话文件并在之前创建它时重新创建它。

这是一个这样做的例子:

FileSessionStore store;
TelegramClient client;
store = new FileSessionStore();
client = new TelegramClient(store, numberToAuthenticate, apiId, apiHash);
await client.Connect();