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();

השתמשו ב־WTelegram.Client הקיים וייבאו את ספריית SOCKS התואמת שבחרתם. proxyHost, הפורט והחשבון מזהים את המתווך; address/port של הלמבדה הם היעדים ש־WTelegram מבקש.

CreateConnection חייב להחזיר TcpClient מחובר לאחר המשא ומתן עם הפרוקסי. הגעה לפורט של הפרוקסי בלבד אינה מספקת את ההעברה הזאת.

הדוגמה משתמשת במתודה סינכרונית של הספרייה. עטיפת התוצאה ב־Task.FromResult אינה הופכת את החיבור ללא חוסם; השתמשו במתודה אסינכרונית נתמכת בעת הצורך.

השאירו את המטפל גם לחיבורים מאוחרים יותר וגם להתחברות. אימות חשבון Telegram נשאר נפרד מחשבון SOCKS.

מאמרים קשורים