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 همهٔ پروتکلها را حمل میکند، این سازگاری را فراهم نمیکند.