client.TcpHandler = (address, port) =>
{
    var proxy = new Socks5ProxyClient(
        proxyHost, proxyPort, proxyUsername, proxyPassword);
    return System.Threading.Tasks.Task.FromResult(
        proxy.CreateConnection(address, port));
};
await client.LoginUserIfNeeded();

Fes servir el WTelegram.Client existent i importa la biblioteca SOCKS compatible que hagis triat. proxyHost, el port i el compte identifiquen l’intermediari; address/port de la lambda són les destinacions que demana WTelegram.

CreateConnection ha de retornar un TcpClient connectat després de negociar amb el proxy. Arribar només al port del proxy no proporciona aquest traspàs.

L’exemple fa servir un mètode síncron de la biblioteca. Encapsular-ne el resultat en Task.FromResult no fa que la connexió deixi de bloquejar; utilitza un mètode asíncron compatible quan calgui.

Conserva el handler tant per a les connexions posteriors com per a l’inici de sessió. L’autenticació del compte de Telegram continua separada del compte SOCKS.

Articles relacionats