ওয়েব সকেট কমিউনিকেশন প্রটোকল

AL HasibAL Hasib
3 min read

ওয়েব সকেট কি?

ওয়েব সকেট একটি কমিউনিকেশন প্রটোকল। যেটি ক্লায়েন্ট এবং সার্ভারের মাঝে ফুল ডুপ্লেক্স কানেকশন এস্টাবলিশ করার মাধ্যমে একটি একক কানেকশন তৈরি করে। যেখানে HTTP প্রটোকল বারবার রিকুয়েস্ট রেসপন্সের মাধ্যমে তথ্য আদান-প্রদান করে। সেখানে ওয়েব সকেট একটি নিরবিচ্ছিন্ন কানেকশন এর মাধ্যমে বাই ডিরেকশনাল তথ্য আদান প্রদান করতে পারে। ওয়েব সকেট এর মাধ্যমে সার্ভার কোন ধরনের রিকুয়েস্ট করা ছাড়াই ক্লায়েন্টকে তথ্য পাঠাতে পারে। যার ফলে একটা স্মুথ রিয়েল টাইম কমিউনিকেশন সম্ভব হয়। যেমন আমাদের বর্তমান ব্যবহৃত চ্যাট অ্যাপ্লিকেশন, নোটিফিকেশন ইত্যাদি।

ওয়েব সকেট কিভাবে কাজ করে ?

১. ইনিশিয়াল HTTP হ্যান্ডসেকঃ

  • ওয়েব সকেট প্রাথমিক হ্যান্ডশেকের মাধ্যমে শুরু হয়, যেখানে ক্লায়েন্ট সার্ভারে একটি HTTP রিকুয়েস্ট পাঠায় ওয়েব সকেট কানেকশন স্টাবলিশ করার জন্য। যেটাতে একটি স্পেশাল HTTP হেডারের মাধ্যমে রিকুয়েস্ট করা হয়।

  • যদি সার্ভার ওয়েব সকেট সাপোর্ট করে তাহলে রিকোয়েস্ট একসেপ্ট করে ওয়েব সকেটে সুইচ করে এবং ১০১ স্ট্যাটাস কোড পাঠায়।

২. পার্সিস্টেন্ট কানেকশন (নিরবিচ্ছিন্ন সংযোগ)ঃ

  • হ্যান্ডসেক সাকসেসফুল হলে ওয়েব সকেট কানেকশন ট্যাবলিশ হয়, এবং একটি নিরবিচ্ছিন্ন TCP কানেকশন ওপেন হয় ক্লায়েন্ট এবং সার্ভার এর মধ্যে।

  • এই কানেকশনটি ওপেন থাকে এবং ক্লায়েন্ট ও সার্ভারের মধ্যে যেকোনো সময় ডাটা আদান প্রদান করা যায়, তার জন্য কোন আর ধরনের কোন কানেকশন রিয়েস্টাবলিশের প্রয়োজন হয় না। অথবা অন্য কোন রিকোয়েস্ট করতে হয় না। এই কানেকশনটি ততক্ষণ স্টাবলিশ থাকে যদি না ক্লায়েন্ট অথবা সার্ভার স্পষ্টতো কেউ এটিকে ক্লোজ না করে।

৩. বাই ডিরেকশনাল কানেকশন (দ্বিমুখী যোগাযোগ)ঃ

  • কানেকশন এস্টাবলিশ হওয়ার পরে ক্লায়েন্ট এবং সার্ভার উভয় দিকে ডাটা স্বাধীনভাবে আদান প্রদান করা যায়। যেখানে HTTP তে ক্লায়েন্ট একটি রিকুয়েস্ট করলে সার্ভার রেসপন্সের জন্য অপেক্ষা করতে হয়।

৪. ক্লোজিং দা কানেকশন (কানেকশন বন্ধ করণ)ঃ

  • ক্লায়েন্ট অথবা সার্ভার উভয়ই যেকোনো সময় কানেকশন বন্ধ করে দিতে পারে। যখন একটি বন্ধ হয় তখন বিপরীত পক্ষকে একটি “close frame” পাঠানোর মাধ্যমে ইনফর্ম করা হয়।

ওয়েব সকেট প্রটোকলঃ

প্রটোকলঃ ওয়েব সকেট কানেকশন স্টাবলিশ করার জন্য ওয়েব সকেট প্রটোকল ব্যবহার করে। আবার ওয়েব সকেট প্রটোকল নিজেই TCP(Transmission Control Protocol)এর উপর চলে।

পোর্টঃ

  • ওয়েব সকেট আনসিকিউর (ws://) কানেকশনের জন্য port:80 ব্যবহার করে।

  • এবং সিকিওর (wss://) কানেকশনের জন্য port:443 ব্যবহার করে। যেখানে ডাটা এনক্রিপশনের জন্য TLS(Transport Layer Security) ব্যবহার করা হয় যা অনেকটা HTTPS এর মত।

ওয়েব সকেট ব্যবহারের সুবিধাঃ

লো লেটেন্সিঃ যেহেতু এটি একটি নিরবিচ্ছিন্ন কানেকশন স্টাবলিশ করার মাধ্যমে তথ্য আদান প্রদান করে, তাই এখানে কোন ধরনের কোন লেটেন্সি থাকে না। যে কারণে বারবার HTTP রিকুয়েস্ট করার প্রয়োজন হয় না।

ফুল ডুপ্লেক্সঃ ওয়েব সকেট কমিউনিকেশন বাই ডিরেকশনাল, যেখানে ক্লায়েন্ট এবং সার্ভার একই সাথে ডাটা আদান প্রদান করতে পারে।

লো ওভারহেডঃ ওয়েব সকেটের ওভারহেড প্রচলিত HTTP থেকে অনেক কম। যা এটাকে দ্রুত এবং নিরবিচ্ছিন্ন রিয়েল টাইম ডাটা এক্সচেঞ্জে সহায়তা করে।

রিয়েল টাইমঃ ওয়েব সকেট রিয়েল টাইম এপ্লিকেশন এর জন্য সবথেকে আইডিয়াল।

ওয়েব সকেট সাধারণত চ্যাট অ্যাপ্লিকেশন, লাইভ নোটিফিকেশন, অনলাইন গেমিং, কোলাবরেটিভ অ্যাপ্লিকেশন, লাইভ ফিড ইত্যাদি অ্যাপ্লিকেশনে ব্যবহৃত হয়।

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

0
Subscribe to my newsletter

Read articles from AL Hasib directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

AL Hasib
AL Hasib