from websocket import create_connection

ws = create_connection(
    "wss://service.example.net/socket",
    http_proxy_host="127.0.0.1",
    http_proxy_port=1080,
    proxy_type="socks5h",
    timeout=15,
)

ใช้สิ่งนี้กับ websocket-client และการพึ่งพา SOCKS ที่มีเอกสารกำกับซึ่งมีอยู่แล้ว สำหรับบริการ WSS สาธารณะบนเส้นทางพร็อกซีสาธารณะที่ได้รับอนุญาต รายการพร็อกซี SOCKS5 มีผู้สมัครสำหรับโฮสต์และพอร์ตของพร็อกซี แม้ว่าคีย์โฮสต์/พอร์ตจะชื่อ http_proxy_* แต่ proxy_type='socks5h' เลือก SOCKS5 พร้อมการจัดการชื่อเป้าหมายฝั่งพร็อกซี

ลำดับคือการเจรจากับพร็อกซีเพื่อให้ได้สตรีมปลายทาง TLS ที่ตรวจสอบแล้วสำหรับ WSS จากนั้นจึงเป็นการจับมือ WebSocket ชื่อโฮสต์ของพร็อกซีไม่ใช่ตัวตน TLS ของเว็บไซต์ การปิดการตรวจสอบไม่ได้ซ่อมขั้นตอน TLS ที่วางผิดที่

สำหรับพร็อกซีที่ต้องพิสูจน์ตัวตน ให้ใช้อาร์กิวเมนต์ที่มีเอกสารกำกับของเวอร์ชันที่ติดตั้งสำหรับพร็อกซีชนิดนั้น ส่วนหัว WebSocket ของแอปพลิเคชันไม่ได้พิสูจน์ตัวตนตัวกลางก่อนหน้า

ซ็อกเก็ตที่จัดหาเองด้วยมือจะโอนความรับผิดชอบสำหรับชั้นเหล่านั้นไปยังการผสานรวม ให้เลือกใช้อินเทอร์เฟซของไลบรารีเมื่อเหมาะสม และแยก websocket-client ออกจากแพ็กเกจ websockets ที่มีเวอร์ชันแยกต่างหาก

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