Azure IoT Python: กำหนดค่า MQTT ผ่าน WebSockets ผ่านพร็อกซี
กำหนดค่าตัวเลือกพร็อกซีที่ไคลเอนต์ Azure IoT Python รองรับ และเลือก MQTT ผ่าน WebSockets อย่างตั้งใจ
ในแอปพลิเคชันที่ใช้ Azure IoT Python SDK อยู่แล้ว ให้เลือกการขนส่ง MQTT และตัวเลือกพร็อกซีไปพร้อมกัน การกำหนดค่านี้เลือก MQTT ผ่าน WebSockets:
proxy = ProxyOptions(proxy_type='HTTP',
proxy_addr='203.0.113.10', proxy_port=8080)
client = IoTHubDeviceClient.create_from_connection_string(
connection_string, websockets=True, proxy_options=proxy
)
คลาสเหล่านี้มาจากอินเทอร์เฟซที่เอกสารของ SDK ระบุไว้ จัดหาสตริงการเชื่อมต่อของอุปกรณ์ผ่านการกำหนดค่าลับของแอปพลิเคชัน และแทนที่ปลายทางพร็อกซีตัวอย่าง สำหรับปลายทาง IoT Hub ที่เข้าถึงได้จากสาธารณะซึ่งอนุญาตให้ใช้ตัวกลางสาธารณะ รายการพร็อกซี HTTP เสนอผู้สมัครสำหรับโฮสต์และพอร์ต HTTP ตรวจสอบว่าบริการอนุญาตเส้นทางไปยังปลายทางหรือไม่ สิ่งเหล่านี้เป็นตัวเลือกที่ชัดเจนของ SDK พร็อกซีที่ทำงานในเบราว์เซอร์หรือการตั้งค่าทั่วไปของระบบปฏิบัติการไม่ได้สร้างเส้นทางของไคลเอนต์อุปกรณ์
ดูเอกสารอ้างอิง ProxyOptions สำหรับประเภทพร็อกซีที่เลือก เอกสารนี้แยกฟิลด์ HTTP, SOCKS4 และ SOCKS5 และบันทึกพฤติกรรมชื่อผู้ใช้/รหัสผ่านเฉพาะประเภท รวมถึงข้อจำกัดสำหรับ HTTP การมีอยู่ของฟิลด์ไม่ได้สัญญากลไกการรับรองความถูกต้องทุกชนิด
บัญชีพร็อกซีและตัวตนของอุปกรณ์ให้สิทธิ์ในขั้นตอนที่ต่างกัน การแลกเปลี่ยนผ่านตัวกลางที่ถูกปฏิเสธอาจหยุดการเชื่อมต่อก่อนที่โบรกเกอร์จะประเมินข้อมูลรับรองของอุปกรณ์ การเลือก WebSockets ยังคงทำให้ข้อจำกัดปลายทางและการเข้าถึงของพร็อกซียังมีผลบังคับใช้
บันทึกการขนส่งที่เลือก ปลายทาง และขั้นตอนแรกที่ล้มเหลว ไคลเอนต์ SDK การทำงานของพร็อกซี และเส้นทางที่อนุญาตต้องสอดคล้องกัน ทั้งคำขอเบราว์เซอร์ที่สำเร็จและข้อกล่าวอ้างทั่วไปว่า SOCKS รองรับทุกโปรโตคอลไม่ได้ให้ความเข้ากันได้นั้น