Python websocket-client: เชื่อมต่อผ่านพร็อกซี SOCKS5
กำหนดค่า websocket-client ด้วยชนิดพร็อกซี SOCKS ที่มีเอกสารกำกับ และให้ไลบรารีจัดการชั้น TLS ของการเชื่อมต่อ wss
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 ที่มีเวอร์ชันแยกต่างหาก