কম্পিউটার টিউটোরিয়াল

HTML5-এ WebSocket অ্যাট্রিবিউটসমূহ


WebSocket API: অ্যাট্রিবিউট ও স্টেট ম্যানেজমেন্ট

WebSocket হলো ব্রাউজার ও সার্ভারের মধ্যে ডুপ্লেক্স (দ্বিমুখী) যোগাযোগের জন্য একটি প্রোটোকল এবং API। HTML5-কম্প্লায়েন্ট ব্রাউজারগুলোতে JavaScript ইন্টারফেস হিসেবে উপলব্ধ। একটি একক TCP সংযোগের মাধ্যমে রিয়েল-টাইম ডেটা এক্সচেঞ্জ সম্ভব করে তোলে।

WebSocket অবজেক্টের প্রধান অ্যাট্রিবিউটসমূহ

অ্যাট্রিবিউট বর্ণনা
Socket.readyState (Read-only) সংযোগের বর্তমান স্টেট নির্দেশ করে। নিম্নলিখিত মানগুলো সম্ভব:
  • 0 (CONNECTING): সংযোগ এখনো স্থাপন হয়নি।
  • 1 (OPEN): সংযোগ স্থাপন হয়েছে এবং যোগাযোগ সম্ভব।
  • 2 (CLOSING): সংযোগ বন্ধ করার প্রক্রিয়া চলছে (closing handshake)।
  • 3 (CLOSED): সংযোগ বন্ধ হয়েছে বা খোলা যায়নি।
Socket.bufferedAmount (Read-only) UTF-8 টেক্সটের বাইট সংখ্যা যা send() মেথড দিয়ে কিউ করা হয়েছে কিন্তু এখনো নেটওয়ার্কে পাঠানো হয়নি। এটি ব্যবহার করে ব্যাকপ্রেসার হ্যান্ডল করা যায়।

অন্যান্য গুরুত্বপূর্ণ প্রপার্টি ও ইভেন্ট

প্রপার্টি/ইভেন্ট বর্ণনা
url (Read-only) WebSocket সার্ভারের URL।
protocol (Read-only) সার্ভার দ্বারা নির্বাচিত সাব-প্রোটোকল।
extensions (Read-only) সংযোগের জন্য স্বীকৃত এক্সটেনশন।
onopen সংযোগ সফল হলে ফায়ার হয়।
onmessage সার্ভার থেকে মেসেজ পাওয়ায় ফায়ার হয়। event.data-এ ডেটা থাকে।
onerror ত্রুটি ঘটলে ফায়ার হয়।
onclose সংযোগ বন্ধ হলে ফায়ার হয়। event.code, event.reason, event.wasClean উপলব্ধ।

ব্যবহারের উদাহরণ

const socket = new WebSocket('wss://example.com/socket');

socket.onopen = function(event) {
  console.log('সংযোগ স্থাপন হয়েছে। ReadyState:', socket.readyState); // 1
  socket.send('হ্যালো সার্ভার!');
};

socket.onmessage = function(event) {
  console.log('প্রাপ্ত মেসেজ:', event.data);
  console.log('বাফারড অ্যামাউন্ট:', socket.bufferedAmount);
};

socket.onclose = function(event) {
  console.log('সংযোগ বন্ধ। কোড:', event.code, 'কারণ:', event.reason);
};

socket.onerror = function(error) {
  console.error('WebSocket ত্রুটি:', error);
};

ব্রাউজার সাপোর্ট

সকল আধুনিক ব্রাউজার (Chrome 4+, Firefox 4+, Safari 5+, Edge 12+, Opera 11+) WebSocket সাপোর্ট করে। পুরানো ব্রাউজারদের জন্য 폴백 (fallback) হিসেবে Long Polling বা Server-Sent Events ব্যবহার করা যেতে পারে।

  1. HTML5-এ WebSockets Apache সার্ভার কম্প্যাটিবিলিটি

  2. HTML5-এ <audio> এলিমেন্টের অ্যাট্রিবিউট এবং ব্যবহার

  3. সি-এ Enum (এনামারেশন)

  4. C#-এ OverflowException: ইন্টিজার রেঞ্জ বাইরে মান