অন্যদের কাছ থেকে কিছু দুর্দান্ত উত্তর যা প্রচুর জমিটি জুড়ে। এখানে কিছুটা অতিরিক্ত।
জাভা অ্যাপলেটস, ফ্ল্যাশ বা সিলভারলাইটের মতো প্লাগইনগুলিতে ওয়েবসকেটগুলির একমাত্র সুবিধা হ'ল ওয়েবসকেটগুলি স্থানীয়ভাবে ব্রাউজারগুলিতে অন্তর্নির্মিত এবং প্লাগইনগুলিতে নির্ভর করে না।
যদি এর দ্বারা আপনি বোঝাচ্ছেন যে সকেট সংযোগ স্থাপনের জন্য আপনি জাভা অ্যাপলেটস, ফ্ল্যাশ বা সিলভারলাইট ব্যবহার করতে পারেন তবে হ্যাঁ, এটি সম্ভব is তবে আপনি দেখতে পান না যে বাস্তব জগতে প্রায়শই সীমাবদ্ধতার কারণে মোতায়েন রয়েছে।
উদাহরণস্বরূপ, মধ্যস্থতাকারীরা সেই ট্র্যাফিকটি শাটডাউন করতে এবং করতে পারে। ওয়েবস্কট স্ট্যান্ডার্ডটি বিদ্যমান এইচটিটিপি পরিকাঠামোর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য ডিজাইন করা হয়েছিল এবং তাই ফায়ারওয়ালস এবং প্রক্সিগুলির মতো মধ্যস্থতাকারীদের দ্বারা হস্তক্ষেপ করার ঝুঁকি কম less
তদ্ব্যতীত, ওয়েবসকেট 80 এবং 443 পোর্টকে ডেডিকেটেড পোর্টগুলির প্রয়োজন ছাড়াই ব্যবহার করতে পারে, আবার প্রোটোকল ডিজাইনের উপস্থিতি বর্তমান এইচটিটিপি পরিকাঠামোর সাথে যথাসম্ভব সামঞ্জস্যপূর্ণ হওয়ার জন্য ধন্যবাদ।
এই সকেটের বিকল্পগুলি (জাভা, ফ্ল্যাশ এবং সিলভারলাইট) ক্রস-অরিজিন আর্কিটেকচারে নিরাপদে ব্যবহার করা কঠিন। সুতরাং লোকেদের প্রায়শই ক্রস-উত্সটি ব্যবহার করার চেষ্টা করা সুরক্ষিতভাবে করার চেষ্টা করার পরিবর্তে নিরাপত্তাহীনতা সহ্য করবে will
তাদের অতিরিক্ত "অ-মানক" পোর্টগুলি খোলার প্রয়োজন হতে পারে (কিছু প্রশাসককে করণীয় নয়) বা নীতি ফাইল যা পরিচালনা করতে হবে।
সংক্ষেপে, সকেট সংযোগের জন্য জাভা, ফ্ল্যাশ, বা সিলভারলাইট ব্যবহার করা যথেষ্ট সমস্যাযুক্ত যে আপনি এটি প্রায়শই গুরুতর আর্কিটেকচারে স্থাপন দেখেন না। ফ্ল্যাশ এবং জাভা সম্ভবত কমপক্ষে 10 বছর ধরে এই সক্ষমতা অর্জন করেছে এবং এখনও এটি প্রচলিত নয়।
ওয়েবসকেট স্ট্যান্ডার্ড এই বিধিনিষেধগুলি মাথায় রেখে একটি নতুন পদ্ধতির সাথে শুরু করতে সক্ষম হয়েছিল এবং আশা করা যায় যে সেগুলি থেকে কিছু পাঠ শিখেছে।
কিছু ওয়েবস্কট বাস্তবায়ন ফ্ল্যাশ (বা সম্ভবত সিলভারলাইট এবং / বা জাভা) তাদের ফ্যালব্যাক হিসাবে ব্যবহার করে যখন ওয়েবস্কট সংযোগ স্থাপন করা যায় না (যেমন কোনও পুরানো ব্রাউজারে চলার সময় বা কোনও মধ্যস্থতাকারী হস্তক্ষেপ করে)।
যদিও এই পরিস্থিতিতেগুলির জন্য এক ধরণের ফ্যালব্যাক কৌশল স্মার্ট, এমনকি প্রয়োজনীয়, তবে যারা ফ্ল্যাশ এট আল ব্যবহার করেন তাদের বেশিরভাগই উপরে বর্ণিত ত্রুটিগুলি ভুগবেন। এটি সেভাবে হওয়ার দরকার নেই - ফ্ল্যাশ, সিলভারলাইট ইত্যাদি ব্যবহার করে সুরক্ষিত ক্রস-অরিজিন সক্ষম সংযোগগুলি অর্জনের জন্য কার্যকারণ রয়েছে - তবে বেশিরভাগ বাস্তবায়ন তা করবে না কারণ এটি সহজ নয়।
উদাহরণস্বরূপ, যদি আপনি ক্রস-অরিজিন সংযোগের জন্য ওয়েবসকেটের উপর নির্ভর করেন তবে এটি দুর্দান্ত কাজ করবে। তবে আপনি যদি তখন কোনও পুরানো ব্রাউজারে চালিত হন বা ফায়ারওয়াল / প্রক্সি হস্তক্ষেপ করে এবং ফ্ল্যাশের উপর নির্ভর করেন তবে বলুন, আপনার ফ্যালব্যাক হিসাবে, আপনাকে একই ক্রস-অরিজিন সংযোগটি করতে অসুবিধা হবে। আপনি যদি সুরক্ষা সম্পর্কে অবশ্যই চিন্তা না করেন তবে অবশ্যই।
এর অর্থ এটি একটি একক একীভূত আর্কিটেকচারের পক্ষে কঠিন যা দেশী এবং অ-নেটিভ সংযোগগুলির জন্য কাজ করে, যদি না আপনি বেশ কিছুটা কাজ করার জন্য প্রস্তুত থাকেন বা কোনও ফ্রেমওয়ার্ক যা এটি ভালভাবে সম্পাদন করে না যায় prepared একটি আদর্শ আর্কিটেকচারে, আপনি লক্ষ্য করবেন না যে সংযোগগুলি দেশীয় ছিল কি না; আপনার সুরক্ষা সেটিংস উভয় ক্ষেত্রেই কাজ করবে; আপনার ক্লাস্টারিং সেটিংস এখনও কাজ করবে; আপনার ক্ষমতা পরিকল্পনা এখনও রাখা হবে; ইত্যাদি।
এইচটিপি স্ট্রিমিংয়ের মাধ্যমে ওয়েবসকেটগুলির একমাত্র সুবিধা হ'ল আপনাকে প্রাপ্ত তথ্য "বোঝার" এবং পার্স করার চেষ্টা করতে হবে না।
এটি কোনও এইচটিটিপি স্ট্রিমটি খোলার মতো এবং আপনার ডেটা কয়েক মিনিট, ঘন্টা বা তার চেয়ে বেশি সময় ধরে প্রবাহিত হওয়ার মতো ফিরে আসার মতো সহজ নয়। বিভিন্ন ক্লায়েন্ট আলাদা আচরণ করে এবং আপনাকে এটি পরিচালনা করতে হবে। উদাহরণস্বরূপ কিছু ক্লায়েন্ট ডেটা বাফার করবেন এবং কিছু থ্রোসোল্ড পূরণ না হওয়া পর্যন্ত এটি অ্যাপ্লিকেশনটিতে প্রকাশ করবেন না। আরও খারাপ, সংযোগটি বন্ধ না হওয়া পর্যন্ত কিছু অ্যাপ্লিকেশনটিতে ডেটা পাস করবে না।
সুতরাং আপনি যদি ক্লায়েন্টের কাছে একাধিক বার্তা প্রেরণ করেন তবে এটি সম্ভব যে ক্লায়েন্ট অ্যাপ্লিকেশন কোনও মূল্যবান 50 বার্তা না পাওয়া পর্যন্ত ক্লায়েন্ট অ্যাপ্লিকেশন ডেটা গ্রহণ করবে না। এটি খুব রিয়েল-টাইম নয়।
যখন ওয়েবস্কটটি উপলভ্য নয় তখন এইচটিটিপি স্ট্রিমিং একটি কার্যকর বিকল্প হতে পারে, এটি কোনও নিরাময়ে নয়। বাস্তব-বিশ্বের পরিস্থিতিতে ওয়েবের খারাপ অঞ্চলে শক্তিশালী উপায়ে কাজ করার জন্য এটি একটি ভাল বোঝাপড়া দরকার।
আমি অনুপস্থিত অন্য কোন উল্লেখযোগ্য পার্থক্য আছে?
অন্য একটি জিনিস রয়েছে যা এখনও দুপুরে উল্লেখ করেনি, তাই আমি এটিকে সামনে আনব।
ওয়েবসকেট প্রোটোকলটি উচ্চ-স্তরের প্রোটোকলের জন্য পরিবহন স্তর হিসাবে নকশা করা হয়েছিল। আপনি জেএসওএন বার্তাগুলি বা কোনও ওয়েবস্কট সংযোগের মাধ্যমে সরাসরি পাঠাতে পারবেন না, এটি স্ট্যান্ডার্ড বা কাস্টম প্রোটোকলও বহন করতে পারে।
উদাহরণস্বরূপ, আপনি ওয়েবসকেটের মাধ্যমে এএমকিপি বা এক্সএমপিপি করতে পারতেন, যেমন লোকেরা ইতিমধ্যে করেছে। সুতরাং কোনও ক্লায়েন্ট কোনও এএমকিউপি ব্রোকারের কাছ থেকে বার্তা পেতে পারে যেন এটি সরাসরি ব্রোকারের সাথে সংযুক্ত ছিল (এবং কিছু ক্ষেত্রে এটি রয়েছে) cases
বা যদি আপনার কাছে কিছু কাস্টম প্রোটোকল সহ একটি বিদ্যমান সার্ভার থাকে তবে আপনি এটি ওয়েবসকেটের মাধ্যমে পরিবহন করতে পারেন, যাতে ব্যাক-এন্ড সার্ভারটি ওয়েবে প্রসারিত করে। প্রায়শই কোনও বিদ্যমান অ্যাপ্লিকেশন যা এন্টারপ্রাইজে লক করা হয়েছে এটি ব্যাক-এন্ড অবকাঠামোর কোনও পরিবর্তন না করেই ওয়েবস্কট ব্যবহার করে এর প্রসারকে প্রশস্ত করতে পারে।
(স্বাভাবিকভাবেই, আপনি নিরাপদে সেগুলি করতে সক্ষম হবেন তাই বিক্রেতার সাথে বা ওয়েবস্কট সরবরাহকারীর সাথে চেক করুন))
কিছু লোক ওয়েবসকেটকে ওয়েবের জন্য টিসিপি হিসাবে উল্লেখ করেছেন। কারণ টিসিপি যেমন উচ্চ স্তরের প্রোটোকল পরিবহন করে তেমনি ওয়েবসকেটও করে, তবে এমন একটি উপায়ে যা ওয়েব পরিকাঠামোর সাথে সামঞ্জস্যপূর্ণ।
সুতরাং ওয়েবসকেটে সরাসরি জেএসএন (বা যাই হোক না কেন) বার্তা প্রেরণ করা সর্বদা সম্ভব, একটিও বিদ্যমান প্রোটোকল বিবেচনা করা উচিত। কারণ আপনি করতে চান এমন অনেক কিছুর জন্য সম্ভবত একটি প্রোটোকল রয়েছে যা ইতিমধ্যে এটি করার কথা ভাবা হয়েছিল।
আমি দুঃখিত যদি আমি ইতিমধ্যে এসও-তে থাকা অনেকগুলি প্রশ্নকে একক প্রশ্নের মধ্যে পুনরায় জিজ্ঞাসা করি বা একত্রিত করি তবে এসও এবং ওয়েবে এই ধারণাগুলি সম্পর্কে যে সমস্ত তথ্য রয়েছে সেগুলি থেকে আমি কেবল সঠিক ধারণাটি তৈরি করতে চাই।
এটি একটি দুর্দান্ত প্রশ্ন ছিল, এবং উত্তরগুলি সমস্ত খুব তথ্যপূর্ণ ছিল!