mqttui-read-one(1) General Commands Manual mqttui-read-one(1)

mqttui-read-one - انتظار برای نخستین پیام در تاپیک(های) مشخص‌شده و بازگرداندن دادهٔ آن به stdout

mqttui read-one [-r|--ignore-retained] [--only] [-p|--pretty] [--qos] [-b|--broker] [-u|--username] [--password] [-i|--client-id] [--ca-cert] [--client-cert] [--client-private-key] [--insecure] [-h|--help] [TOPIC]

منتظر نخستین پیام در تاپیک(های) ارائه‌شده می‌ماند و بار داده (payload) آن را به stdout بازمی‌گرداند.

دقیقاً یک بار داده از نخستین پیام دریافت‌شده در تاپیک(های) داده‌شده را بازمی‌گرداند. تاپیک پیام دریافت‌شده در stderr چاپ می‌شود؛ این بدان معناست که می‌توانید stdout و stderr را به‌طور جداگانه مدیریت کنید.

این قابلیت می‌تواند برای اسکریپت‌نویسی جهت دریافت دمای خوانده‌شدهٔ فعلی و ارسال آن با لوله (pipe) به جایی دیگر مفید باشد:

`echo "The temperature is $(mqttui read-one room/temp)"`

خروجی دقیقاً همان بار داده در قالب باینری است. این داده ممکن است یک ASCII / Unicode معتبر باشد، اما می‌تواند چیزی باشد که برای نمایش در ترمینال طراحی نشده است. برای قالبی خوانا برای انسان، از `--pretty` یا `mqttui log` استفاده کنید.

هنگام برقراری اتصال، پیام نگه‌داشته‌شده (retained) را بازنمی‌گرداند و منتظر رسیدن پیام دیگری می‌ماند.

در آینده به نفع `--only=live` حذف خواهد شد.

فقط نوع خاصی از پیام را بازمی‌گرداند؛ یا صراحتاً یک پیام نگه‌داشته‌شده (retained) یا پیامی زنده و جاری که روی کارگزار ذخیره نشده است.

به یاد داشته باشید که هنگام درخواست پیام نگه‌داشته‌شده در صورت عدم وجود آن، این موضوع تنها زمانی مشخص می‌شود که اولین پیام غیرنگه‌داشته‌شده دریافت شود؛ بنابراین ممکن است مدتی طول بکشد. در صورتی که هیچ پیام نگه‌داشته‌شده‌ای وجود نداشته باشد، فرایند با کد خروج ۱ پایان می‌یابد.

مقادیر ممکن:

  • retained
  • live
بار داده را تجزیه کرده و آن را در قالبی آراسته و خوانا برای انسان چاپ می‌کند.

این حالت ممکن است برای پایپ کردن داده‌ها مناسب نباشد.

حداکثر کیفیت خدمات (`QoS`) برای اشتراک‌ها و انتشارها.

سطح کیفیت خدمات پایین‌تر میان ناشر و مشترک، از سوی کارگزار به مشترک تحویل داده می‌شود. بنابراین، اشتراک با سطح 0 هرگز پیامی با سطح 1 یا 2 دریافت نخواهد کرد. انتشار با سطح 2، در صورت اشتراک با سطح 1، به‌صورت 1 دریافت خواهد شد.

- 0: حداکثر یک‌بار (fire and forget / ارسال و فراموش)

- 1: حداقل یک‌بار (تحویل تاییدشده با احتمال دریافت تکراری)

- 2: دقیقاً یک‌بار (تحویل تضمین‌شده بدون دریافت تکراری)

همچنین می‌تواند از طریق متغیر محیطی MQTTUI_QOS مشخص شود.
چاپ راهنما (مشاهدهٔ خلاصه‌ای با '-h')
[TOPIC] [پیش‌فرض: #]
تاپیک‌ها برای پایش
همچنین می‌تواند از طریق متغیر محیطی MQTTUI_TOPIC مشخص شود.

نشانی اینترنتی (URL) که نحوهٔ اتصال به کارگزار MQTT را مشخص می‌کند.

مثال‌ها: `mqtt://localhost` `mqtt://localhost:1883` `mqtts://localhost` `mqtts://localhost:8883` `ws://localhost/path` `ws://localhost:9001/path` `wss://localhost/path` `wss://localhost:9001/path`

همچنین می‌تواند از طریق متغیر محیطی MQTTUI_BROKER مشخص شود.
نام کاربری برای دسترسی به کارگزار mqtt.

در صورت ارائه نشدن، دسترسی ناشناس اعمال می‌شود.

همچنین می‌تواند از طریق متغیر محیطی MQTTUI_USERNAME مشخص شود.
گذرواژه برای دسترسی به کارگزار mqtt.

استفاده از اتصالی مجهز به TLS به کارگزار را مد نظر داشته باشید؛ در غیر این صورت گذرواژه به‌صورت متن ساده (plaintext) منتقل خواهد شد.

ارسال گذرواژه از طریق خط فرمان ناامن است زیرا گذرواژه می‌تواند از تاریخچه خوانده شود! بهتر است آن را از طریق متغیر محیطی ارسال کنید.

همچنین می‌تواند از طریق متغیر محیطی MQTTUI_PASSWORD مشخص شود.
مشخص کردن شناسهٔ کلاینت (client id) برای برقراری اتصال
همچنین می‌تواند از طریق متغیر محیطی MQTTUI_CLIENTID مشخص شود.
مسیر به فایل PEM گواهی CA معتبر جهت اعتبارسنجی کارگزار.

گواهی CA باید یک گواهی X.509 v3 باشد زیرا rustls از گواهی‌های ناامن‌تر v1 پشتیبانی نمی‌کند. ببینید: https://github.com/rustls/rustls/issues/2364

همچنین می‌تواند از طریق متغیر محیطی MQTTUI_CA_CERTIFICATE مشخص شود.
مسیر به فایل گواهی کلاینت TLS.

همراه با --client-private-key برای فعال‌سازی احراز هویت کلاینت TLS استفاده می‌شود. این فایل باید یک گواهی X.509 با کدگذاری DER باشد که به PEM تبدیل شده است.

همچنین می‌تواند از طریق متغیر محیطی MQTTUI_CLIENT_CERTIFICATE مشخص شود.
مسیر به فایل کلید خصوصی کلاینت TLS.

همراه با --client-cert برای فعال‌سازی احراز هویت کلاینت TLS استفاده می‌شود. این فایل باید یک فایل ASN.1 با کدگذاری DER در قالب PKCS#8 باشد که به PEM تبدیل شده است.

همچنین می‌تواند از طریق متغیر محیطی MQTTUI_CLIENT_PRIVATE_KEY مشخص شود.
مجاز دانستن اتصالات ناامن TLS
read-one