আমার কি মোসকুইটোর ওয়েব সকেটগুলি ব্যবহার করা উচিত বা ক্লায়েন্টদের সরাসরি সংযুক্ত করা উচিত?


11

এই ব্লগ অনুসারে , মোসকুইটো (এমকিউটিটি ব্রোকার) এখন ওয়েব সকেটের মাধ্যমে ক্লায়েন্টদের সাথে সংযোগ স্থাপনের পক্ষে সমর্থন করে। ব্লগ নিবন্ধ প্রজ্ঞান ওয়েব সকেট যদিও ওয়েব সকেট প্রোটোকল, ব্রাউজার অ্যাপ্লিকেশনের জন্য সর্বাধিক উপযোগী যেহেতু ওয়েব ব্রাউজার (এখনও) সঠিক বিভিন্ন TCP সকেট সমর্থন করি না মনে হয় করা হয় আধুনিক ব্রাউজারে সংখ্যাগরিষ্ঠ দ্বারা সমর্থিত।

যদি আমার কেবল একটি নেটওয়ার্কে বিভিন্ন ক্লায়েন্ট থাকে (যেমন রাস্পবেরি পিসের মতো মাইক্রোকন্ট্রোলারের উপর ভিত্তি করে সেন্সর এবং অ্যাকিউটরেটর), সরাসরি টিসিপি সংযোগের মাধ্যমে ওয়েব সকেটগুলি ব্যবহার করার কোনও সুবিধা কি হবে? আপনি যখন কোনও ব্রাউজারের সাথে কথা বলছেন তখন ওয়েব সকেট প্রোটোকলের কি ওভারহেডের পক্ষে কি মূল্য রয়েছে?


1
আপনি যদি নেটওয়ার্কের সমস্ত কোডিং করে থাকেন তবে দয়া করে আমাদের বলতে পারেন? অর্থাৎ সমস্ত নোড বা ক্লায়েন্ট এবং সার্ভার উভয়ই? বা যদি আপনার অন্য কারও সফ্টওয়্যারটির সাথে যোগাযোগ করতে হয়? দেখে মনে হচ্ছে আপনি হয়ত ক্লায়েন্টদের কোডিং করছেন, তবে আমি নিশ্চিত হতে পারি না
মাওগ মনিকা

1
@ ম্যাগ সার্ভারটি মোসকিউটো এমকিউটিটি ব্রোকার হবে তবে আমি বেছে নিতে পারি যে আমি সমস্ত ক্লায়েন্টদের জন্য কোন প্রোটোকল ব্যবহার করি (এবং মোসাকুইটো ওয়েব সকেট এবং সরাসরি টিসিপি সংযোগ উভয়ই সরবরাহ করে, এজন্যই আমি জিজ্ঞাসা করেছি)।
Aurora0001

1
আমি মনে করি এখানে কিছু বিভ্রান্তি আছে। আমি অনুমান করি যে @ অরোয়া 20001 "ডাইরেক্ট টিসিপি" বলতে কী বুঝায় টিউসপিকে এমওসিটিটি ওভার ওয়েবসকেটস (... টিসিপি-র উপরে) ব্যবহার না করে। উভয় ক্ষেত্রেই গ্রন্থাগারগুলি উপলব্ধ রয়েছে সুতরাং সকেটের জন্য কোনও কোড লেখার প্রয়োজন নেই।
3'17

@ রাত্রি হ্যাঁ, প্রশ্ন জিজ্ঞাসা করার সময় এটিই আমার উদ্দেশ্য ছিল। উত্তরগুলি কিছুটা বিপথগামী হয়েছিল, মনে হয়।
অরোরা 10001

উত্তর:


7

এখানে প্রশ্নটি মনে হচ্ছে "আমি কি টিসিপি-র উপরে এমকিউটিটি ব্যবহার করব, বা ওয়েবসকেটের উপরে এমকিউটিটি ব্যবহার করব (যা টিসিপি-র উপরেও যায়)?" অন্য কথায়, "ওয়েবসকেট প্রোটোকলে এমকিউটিটি আবদ্ধ করা কি ভাল ধারণা?"

এটি (প্রায়) সম্পূর্ণ আপনার অ্যাপ্লিকেশনটির নিচে এবং আপনার ওয়েবসকেট সমর্থন দরকার কিনা - সম্ভবত কোনও ব্রাউজারে বার্তা গ্রহণের জন্য বা ফায়ারওয়াল কারণে। খাঁটি এমকিটিটিটির জন্য যদি আপনার সার্ভারটি 1883 পোর্টে বা 8883 এর চেয়ে ভাল পোর্টে অ্যাক্সেসযোগ্য না থাকতে পারে তবে ওয়েবসকেটগুলি আপনার সেরা বিকল্প হতে পারে।

ওয়েবসাইটসকেটগুলির জন্য অতিরিক্ত ব্যান্ডউইথের প্রয়োজন হয়, তবে এটি আপনার পক্ষে গুরুত্বপূর্ণ কিনা তা কেবল আপনি উত্তর দিতে পারেন।

এটি আরও লক্ষণীয় যে ম্যাসকুইটো-র বর্তমান সংস্করণগুলিতে, ওয়েবসকেটগুলি যেমন কাজ করতে পারে তেমন কাজ করে না যাতে ওয়েবেসকেট বার্তা প্রেরণ / গ্রহণ করার সময় অতিরিক্ত প্রচ্ছন্নতা থাকতে পারে। এটি এমন কিছু যা ভবিষ্যতের সংস্করণগুলিতে কোনও সমস্যা হবে না।


7

যখন আপনি কেবল আপনার নেটওয়ার্কের ( ইন্ট্রানেট ) যোগাযোগ করছেন, খাঁটি টিসিপি ব্যবহার করা ভাল। তবে আপনাকে যদি অন্য সার্ভারে সংযোগ করতে হয় তবে সমস্যা দেখা দেবে।

কারণ বেশিরভাগ আধুনিক সার্ভার ক্লায়েন্টকে এলোমেলো বন্দরগুলির মাধ্যমে সংযোগ করতে দেয় না। তারা কেবল কিছু উত্সর্গীকৃত বন্দরগুলিকে সংযোগ করার অনুমতি দেয়। এখানেই শেষ. তাই আপনাকে যদি অন্য সার্ভারের সাথে সংযোগ স্থাপন করতে হয় তবে খাঁটি টিসিপি সংযোগের চেয়ে ওয়েবসকেট ব্যবহার করা আরও ভাল।

যদি আপনি ওভারহেড বিবেচনা করেন তবে এটি এত বড় নয়। আপনি এই নিবন্ধটি উল্লেখ করতে পারেন , যদি আপনি ওয়েবসকেটের ওভারহেড সম্পর্কে আরও জানতে চান।

আমার ব্যক্তিগত মতামত, আপনার কিছু গুরুতর উদ্বেগ না থাকলে সর্বদা ওয়েবসকেট ব্যবহার করা ভাল।


2
এরর, টিসিপি এবং ওয়েবসকেটগুলি হ'ল প্রোটোকল: সরঞ্জাম. ietf.org/html/rfc6455 , তাছাড়া টিসিপি নিম্ন স্তরে একটি সকেট।
গফালাইট

@ থিসারুগুরুজ আপনার উত্তরের জন্য ধন্যবাদ - আমার দৃশ্যে প্রশ্নে আমার ধারণা যে আপনি নিজের উত্তর দিয়ে বিচার করে ওয়েব সকেটের উপরে টিসিপি বেছে নেবেন? বিশেষত যেহেতু ওয়েব সকেটগুলি প্রধানত ব্রাউজারগুলির দ্বারা সমর্থিত বলে মনে হয়, তাই টিসিপি সকেটের উপরে ওয়েব সকেট ব্যবহার করার কোডের ওভারহেড রয়েছে।
Aurora0001

1
"বেশিরভাগ আধুনিক সার্ভার ক্লায়েন্টকে এলোমেলো বন্দরের মাধ্যমে সংযোগ করার অনুমতি দেয় না" - সার্ভারটি বেছে নিতে পারে কোন পোর্টটি ( man7.org/linux/man-pages/man2/bind.2.html ) বাঁধতে হবে , এবং ফায়ারওয়াল ক্যান আরও সীমাবদ্ধ। যাইহোক, আমি কি না সম্মত হন যখন আপনি বলে "আপনি অন্য সার্ভারে সংযোগ করতে আছে যদি, সমস্যা হবে উঠা"। পুনঃপ্রকাশ করুন যে " উত্থিত হতে পারে" হিসাবে। তারপরেও এটি কনফিগারেশনের বিষয়, কোন ওয়েবসকেট সম্ভবত কাঁচা সকেটের চেয়ে সহজ করে তুলবে।
মাওগ বলছেন মনিকা

6

tl; dr - সর্বদা আপনার নিজের কোডিংয়ের জন্য ফ্রি লাইব্রেরি পছন্দ করুন (যদি আপনার চূড়ান্ত প্রয়োজনীয়তা না থাকে)


আমার কি মোসকুইটোর ওয়েব সকেটগুলি ব্যবহার করা উচিত বা ক্লায়েন্টদের সরাসরি সংযুক্ত করা উচিত?

এক টুকরো স্ট্রিং কত দিন? (YMMV)

আমি কেবল সাধারণভাবে কথা বলতে পারি, তবে আমি সর্বদা কাঁচা সকেটের (বা, সত্যিই, কোনও লাইব্রেরি থেকে বিনামূল্যে পেতে পারি এমন কোনও কোডিংয়ের জন্য) মোড়ক লাইব্রেরি পছন্দ করি।

তারা কোডিং সহজ এবং কম ত্রুটির প্রবণ করে তোলে। তারা অনেকগুলি গৃহ-রক্ষণ এবং ত্রুটি পরিচালনার যত্ন নেয়, যা আপনার নিজের লেখার এবং ডিবাগ করতে হবে এমন কোড যা একটি লাইব্রেরি হিসাবে সাধারণত ভালভাবে পর্যালোচনা করা হয়েছে এবং পরীক্ষা করা হয়েছে এবং হাজার হাজার অন্য দ্বারা ব্যবহার করা হচ্ছে, এঁরা সবাই আপনার জন্য ত্রুটিগুলি প্রতিবেদন / ঠিক করবে।

এছাড়াও, আপনার বজায় রাখা (এবং সম্ভবতঃ বন্দর) কম কোড, যার অর্থ আপনার অ্যাপ্লিকেশন বিকাশ, পরীক্ষা ও পোলিশ করতে বা পরবর্তীটিতে যেতে আরও বেশি সময়।

একমাত্র ওভারহেডটি তর্কযোগ্যভাবে একটি ফাংশন কল, যদি আপনি স্বীকার করেন যে সমস্ত লাইব্রেরিয়ান ধার্মিকতা (ত্রুটি পরিচালনা, পায়ের পাতার মোজাবিশেষ রক্ষণাবেক্ষণ এবং এই জাতীয়) এমন একটি জিনিস যা ভাল, স্থিতিশীল, সফ্টওয়্যার পাওয়ার জন্য আপনাকে নিজের কোড করতে হবে।

আপনি যদি কর্মক্ষমতা সম্পর্কে উদ্বিগ্ন হন তবে কেবল প্রোফাইল। তবে, যদি না আপনার সকেট সেকেন্ডে কয়েকবার সক্রিয় থাকে, তবে আমি বিরক্তও করব না।


ভাল, টিসিপি সংযোগ এবং (ওয়েব) সকেট সংযোগের জন্য বিনামূল্যে গ্রন্থাগার রয়েছে এবং উভয়ের জন্যই "প্রাপ্ত বার্তা" ইভেন্টের প্রয়োজন।
গফালাইট

2
দক্ষতার জন্য টিসিপি বা ওয়েবসকেট ব্যবহার করা ভাল কিনা ওপি জানতে চায় এবং আপনি "অ্যাবস্ট্রাকশন লাইব্রেরি ব্যবহার করুন যাতে আপনি বিরক্ত করবেন না" say অবশ্যই, তবে কোনটি? সি # তে System.Net.Socket (একটি ভাল, ভাল ...) এ একটি TcpClient লাইব্রেরি আছে এবং একটি ন্যুগেট প্যাকেজে (ওয়েবস্কটশার্প) একটি ওয়েবসকেট লাইব্রেরি রয়েছে। আমি সম্মত হই যে সমস্ত ভাষার জন্য একটি জেনেরিক এমকিউটিটি গ্রন্থাগার রয়েছে তবে এটি কোন প্রোটোকলটি ব্যবহার করতে হবে তা চয়ন করতে ওপি তার উপর নিয়ন্ত্রণ রাখতে চায়।
গফালাইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.