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 ของ lambda คือปลายทางที่ WTelegram ร้องขอ

CreateConnection ต้องคืน TcpClient ที่เชื่อมต่อแล้วหลังการเจรจากับพร็อกซี การเข้าถึงเพียงพอร์ตพร็อกซีไม่ได้ทำให้ส่งต่อการเชื่อมต่อได้ตามนี้

ตัวอย่างใช้เมธอดแบบซิงโครนัสของไลบรารี แม้นำผลลัพธ์ไปห่อด้วย Task.FromResult การเรียกเชื่อมต่อก็ยังคงบล็อกอยู่ ใช้เมธอดแบบอะซิงโครนัสที่รองรับเมื่อจำเป็น

เก็บ handler ไว้ทั้งสำหรับล็อกอินและการเชื่อมต่อในภายหลัง การยืนยันตัวตนของบัญชี Telegram ยังคงแยกจากบัญชี SOCKS

บทความที่เกี่ยวข้อง