Web Sockets প্রোটোকলটি একটি স্টেট মেশিন ব্যবহার করে, যা কানেকশন স্থাপনের বিভিন্ন পর্যায় এবং তার পরবর্তী অবস্থাগুলো চিহ্নিত করে। এই স্টেট মেশিনটি নিশ্চিত করে যে, Web Sockets প্রোটোকলের প্রতিটি ধাপ সঠিকভাবে সম্পন্ন হচ্ছে এবং কানেকশনটি সঠিকভাবে পরিচালিত হচ্ছে। Web Sockets এর স্টেট মেশিনে মোট চারটি মূল অবস্থান (states) থাকে, প্রতিটির মধ্যে একটি নির্দিষ্ট কার্যপ্রণালী থাকে।
Web Sockets এর স্টেট মেশিনের মূল অবস্থান
- CLOSED (বন্ধ)
- অবস্থান: এটি Web Socket কানেকশনের প্রাথমিক অবস্থা, যখন কোনো কানেকশন স্থাপন হয়নি।
- কার্যপ্রণালী: এই অবস্থায় Web Socket কানেকশন সম্পূর্ণভাবে বন্ধ থাকে এবং কোনো ডেটা আদান-প্রদান সম্ভব নয়।
- পরবর্তী ধাপ: যখন ক্লায়েন্ট একটি কানেকশন তৈরির জন্য HTTP রিকোয়েস্ট পাঠায়, তখন এটি "CLOSED" অবস্থা থেকে "CONNECTING" অবস্থায় চলে যায়।
- CONNECTING (সংযোগ স্থাপন করা হচ্ছে)
- অবস্থান: এই অবস্থায় ক্লায়েন্ট HTTP হ্যান্ডশেক শুরু করেছে, কিন্তু Web Socket কানেকশন সম্পূর্ণরূপে স্থাপন হয়নি।
- কার্যপ্রণালী: ক্লায়েন্ট সার্ভারের কাছে Web Socket কানেকশন স্থাপনের জন্য HTTP রিকোয়েস্ট পাঠায়। এই রিকোয়েস্টে "Upgrade" এবং "Connection: Upgrade" হেডার থাকে, যা সার্ভারকে জানায় যে, ক্লায়েন্ট Web Socket প্রোটোকলে আপগ্রেড করতে চায়।
- পরবর্তী ধাপ: যদি সার্ভার এই রিকোয়েস্ট গ্রহণ করে এবং HTTP 101 রেসপন্স পাঠায়, তাহলে কানেকশনটি "OPEN" অবস্থায় চলে যায়।
- OPEN (খোলা)
- অবস্থান: এটি Web Socket কানেকশনের সক্রিয় এবং কার্যকরী অবস্থা, যেখানে ক্লায়েন্ট এবং সার্ভার একে অপরের সাথে ডেটা আদান-প্রদান করতে সক্ষম।
- কার্যপ্রণালী: একবার কানেকশন স্থাপন হলে, এটি স্থায়ীভাবে খোলা থাকে। ক্লায়েন্ট এবং সার্ভার একে অপরকে অবিচ্ছিন্নভাবে ডেটা পাঠাতে এবং গ্রহণ করতে পারে। এই অবস্থায় ডেটা ট্রান্সফার চলতে থাকে যতক্ষণ না কোনো পক্ষ কানেকশন বন্ধ করার সিদ্ধান্ত নেয়।
- পরবর্তী ধাপ: একদিকে যদি কোনো পক্ষ (ক্লায়েন্ট বা সার্ভার) কানেকশন বন্ধ করতে চায়, তাহলে এটি "CLOSING" অবস্থায় চলে যায়।
- CLOSING (বন্ধ করা হচ্ছে)
- অবস্থান: এই অবস্থায় কানেকশন বন্ধ করার প্রক্রিয়া শুরু হয়েছে, তবে পুরোপুরি বন্ধ হয়নি।
- কার্যপ্রণালী: যখন একপক্ষ (ক্লায়েন্ট বা সার্ভার) "close frame" পাঠায়, তখন কানেকশন বন্ধ করার প্রক্রিয়া শুরু হয়। উক্ত "close frame" এর মাধ্যমে একটি শেষ ইভেন্ট ট্রিগার হয়, যা অন্যপক্ষের কাছে পৌঁছানোর পর তা আবার "close frame" পাঠায়। এই প্রক্রিয়ার পরে কানেকশন সম্পূর্ণরূপে বন্ধ হয়ে যায়।
- পরবর্তী ধাপ: পুরোপুরি কানেকশন বন্ধ হলে, এটি "CLOSED" অবস্থায় ফিরে যায়।
Web Sockets স্টেট মেশিনের একটি সাধারণ চিত্র
[ CLOSED ] --> [ CONNECTING ] --> [ OPEN ] --> [ CLOSING ] --> [ CLOSED ]
সারাংশ
Web Sockets প্রোটোকলটি একটি স্টেট মেশিন ব্যবহার করে, যা কানেকশনের বিভিন্ন অবস্থা (CLOSED, CONNECTING, OPEN, CLOSING) নির্ধারণ করে। এই স্টেট মেশিনটি Web Socket কানেকশনের জীবিত অবস্থা এবং তার বিভিন্ন পর্যায় নিশ্চিত করে। প্রতিটি অবস্থার মধ্যে নির্দিষ্ট কার্যপ্রণালী থাকে, যা কানেকশন স্থাপন, ডেটা আদান-প্রদান এবং কানেকশন বন্ধ করার প্রক্রিয়া পরিচালনা করে। Web Sockets এর এই স্টেট মেশিন ব্যবহারের মাধ্যমে, কানেকশনটি সঠিকভাবে পরিচালিত হয় এবং কমিউনিকেশন প্রক্রিয়া আরও কার্যকরী ও নির্ভরযোগ্য হয়।
Read more