WebSocket প্রোটোকলটি একটি স্টেট মেশিন ব্যবহার করে, যা কানেকশনের বিভিন্ন পর্যায়ের অবস্থা (states) নির্ধারণ করে। প্রতিটি অবস্থা একটি নির্দিষ্ট কার্যপ্রণালী এবং অবস্থা অনুসারে কার্য সম্পাদন করে। WebSocket এর এই চারটি Ready State — CONNECTING, OPEN, CLOSING, এবং CLOSED — যোগাযোগের বিভিন্ন পর্যায় চিহ্নিত করে এবং প্রতিটি স্টেটের মধ্যে নির্দিষ্ট কার্যক্রম ঘটে।
১. CONNECTING (সংযোগ স্থাপন করা হচ্ছে)
অবস্থান: এই অবস্থা তখন হয় যখন ক্লায়েন্ট WebSocket কানেকশন স্থাপন করার চেষ্টা করছে এবং সার্ভারের সাথে HTTP হ্যান্ডশেক চলছে।
- কার্যপ্রণালী: ক্লায়েন্ট প্রথমে WebSocket কানেকশন স্থাপন করার জন্য HTTP রিকোয়েস্ট পাঠায়। এই রিকোয়েস্টে "Upgrade" হেডার থাকে, যা সার্ভারকে জানায় যে ক্লায়েন্ট WebSocket প্রোটোকলে সংযোগ স্থাপন করতে চায়।
- পরবর্তী ধাপ: যদি সার্ভার রিকোয়েস্টটি গ্রহণ করে এবং সঠিক HTTP 101 রেসপন্স পাঠায়, তবে কানেকশনটি OPEN অবস্থায় চলে যাবে।
২. OPEN (খোলা)
অবস্থান: এটি WebSocket কানেকশনের সক্রিয় অবস্থা, যেখানে ক্লায়েন্ট এবং সার্ভার একে অপরকে ডেটা পাঠাতে এবং গ্রহণ করতে সক্ষম।
- কার্যপ্রণালী: একবার কানেকশন স্থাপিত হলে, এটি অবিচ্ছিন্নভাবে খোলা থাকে। এই অবস্থায়, ক্লায়েন্ট এবং সার্ভার একে অপরের সাথে ডেটা আদান-প্রদান করতে পারে।
- বৈশিষ্ট্য:
- ডেটা আদান-প্রদান দ্রুত এবং রিয়েল-টাইমে হয়।
- এখানে কোনো রিকোয়েস্ট-রেসপন্স চক্রের প্রয়োজন নেই।
- পরবর্তী ধাপ: যদি কেউ কানেকশন বন্ধ করতে চায়, তবে তা CLOSING অবস্থায় চলে যাবে।
৩. CLOSING (বন্ধ করা হচ্ছে)
অবস্থান: এই অবস্থায় কানেকশন বন্ধ করার প্রক্রিয়া শুরু হয়েছে, তবে সম্পূর্ণভাবে বন্ধ হয়নি।
- কার্যপ্রণালী: যখন একপক্ষ (ক্লায়েন্ট বা সার্ভার) close frame পাঠায়, তখন কানেকশন বন্ধ করার প্রক্রিয়া শুরু হয়।
- প্রথমে, একটি "close frame" পাঠানো হয়, যা অন্যপক্ষ গ্রহণ করে এবং সাড়া হিসেবে "close frame" পাঠায়।
- পরবর্তী ধাপ: একবার এই প্রক্রিয়া সম্পন্ন হলে, কানেকশন CLOSED অবস্থায় চলে যাবে।
৪. CLOSED (বন্ধ)
অবস্থান: এটি WebSocket কানেকশনের শেষ অবস্থা, যেখানে কানেকশন সম্পূর্ণরূপে বন্ধ হয়ে গেছে।
- কার্যপ্রণালী: এই অবস্থায় কোনো ডেটা আদান-প্রদান সম্ভব নয় এবং কানেকশনটি সম্পূর্ণভাবে বন্ধ থাকে। বন্ধ হওয়ার পরে, নতুন WebSocket কানেকশন স্থাপন করতে ক্লায়েন্ট আবার HTTP রিকোয়েস্ট পাঠাবে।
- পরবর্তী ধাপ: এখানে কোনো পরবর্তী ধাপ নেই। এটি WebSocket কানেকশনের শেষ অবস্থা।
সারাংশ
WebSocket প্রোটোকলটি চারটি Ready State ব্যবহার করে যা কানেকশনের অবস্থা নির্ধারণ করে: CONNECTING, OPEN, CLOSING, এবং CLOSED।
- CONNECTING অবস্থা যখন ক্লায়েন্ট কানেকশন স্থাপন করছে।
- OPEN অবস্থা যখন কানেকশন স্থায়ীভাবে খোলা থাকে এবং ডেটা আদান-প্রদান সম্ভব হয়।
- CLOSING অবস্থা যখন কানেকশন বন্ধ করার প্রক্রিয়া শুরু হয়েছে।
- CLOSED অবস্থা যখন কানেকশন সম্পূর্ণরূপে বন্ধ হয়ে গেছে।
এই স্টেটগুলো WebSocket প্রোটোকলের কার্যপ্রণালীকে সঠিকভাবে পরিচালনা করতে সাহায্য করে এবং কানেকশন স্থাপন থেকে বন্ধ হওয়া পর্যন্ত প্রতিটি ধাপের সমন্বয় নিশ্চিত করে।