আমি কি একক অনুরোধে একাধিক এমকিউটিটি বিষয় প্রকাশ করতে পারি?


10

আমি একাধিক সেন্সর সহ একটি ডিভাইস পেয়েছি যা প্রতিটি সেন্সরকে আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা রিভিউ পাঠিয়ে দেয় topics

device1-id/sensor1-id = 10.2
device1-id/sensor2-id = 15.5
[...]

আমরা এটি অ্যামাজন এডাব্লুএস আইওটি এসডিকে ব্যবহার করে এডাব্লুএস আইওটিতে ফিড করি

mqtt_params.qos = QOS1;
mqtt_params.payload = payload;
mqtt_params.payloadLen = payload_len;
rc = aws_iot_mqtt_publish(&client, topic, topic_len, &mqtt_params);

প্রতিটি কল পৃথক টিসিপি প্যাকেট এবং এডাব্লু এসকিউটি ব্রোকারের থেকে পৃথক প্রতিক্রিয়া উত্পন্ন করে। সমস্যাটি হ'ল আমাদের কিছু নোড খুব ধীরে ধীরে নেটওয়ার্কে রয়েছে এবং প্রতিটি প্যাকেট প্রকাশের বিলম্বের পরে এসি-র জন্য অপেক্ষা করে।

কোনও সেন্সর রিডিং একসাথে, একক টিসিপি প্যাকেটে বান্ডিল করার, এগুলি পৃথক বিষয়গুলিতে প্রকাশ করার সময় এবং কিউএস = 1 রাখার কোনও উপায় আছে?

উত্তর:


7

দেখে মনে হচ্ছে যে আইওএসডি এসডিকে একটি সিঙ্ক্রোনাস প্রকাশ (যেমন এটি কোনও রিটার্ন কোড ব্যবহার করছে) ব্যবহার করছে তাই এটি প্রতিটি বার্তার জন্য অবরুদ্ধ।

এমকিউটিটি প্রোটোকল স্তরে কোনও কারণ নেই যে আপনি একবারে ফ্লাইটে একাধিক বার্তা রাখতে পারবেন না তাই আপনি পহো অ্যাসিনক্রোনাস ক্লায়েন্টটি ব্যবহার করতে পারেন যাতে QOS1 প্রতিক্রিয়াটির অপেক্ষায় পরবর্তী বার্তাটি প্রকাশ না করেই সম্পন্ন করা যায়।

অন্য বিকল্পটি হ'ল একসাথে সমস্ত সেন্সর মান সহ কেবল একটি সংমিশ্রণ বার্তা প্রকাশ করা এবং গ্রাহক প্রান্তে এটি ভাগ করা।


1
যতক্ষণ না সে প্রতিক্রিয়া কোডটি নিয়ে চিন্তিত নয়। আপনি যদি কোনও 200 OKসাড়া না পেয়ে পান , তার মানে কি এই যে উভয় অপারেশন ব্যর্থ হয়েছিল? কেবল মাত্র একটি? যদি তাই হয়, কোনটি?
মাওগ বলছে মনিকা

আপনি এখনও রিটার্ন কোডটি যাচাই করতে পারেন, এটি প্রকাশিত থেকে কোনটির সাথে সম্পর্কিত তা জানতে আপনার কেবল এটি পরীক্ষা করা উচিত।
হার্ডিলব

তবে, সাবস্ক্রাইবের বিপরীতে, আমরা একই এমকিউটিটি বার্তায় বিষয়গুলির একটি অ্যারে এবং তাদের সম্পর্কিত বার্তা সেট আপ করতে পারি না, তাই না?
কোজিটোয়ারগোসাম

হার্ডিলব আপনি বলেছিলেন " আরেকটি বিকল্প হ'ল একসাথে সমস্ত সেন্সর মান সহ কেবল একটি সংমিশ্রণ বার্তা প্রকাশ করা এবং এটি গ্রাহক প্রান্তে বিভক্ত করা।" এটির দ্বারা আপনি বোঝাচ্ছেন বহু-স্তরের ওয়াইল্ডকার্ড ?
user170106

1
@ user170106 না, একক বার্তায় সমস্ত আপডেট বান্ডিল করার অর্থ আপনার কেবলমাত্র একটি বিষয়ে সাবস্ক্রাইব করতে হবে।
হার্ডিলব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.