WebSocket API: অ্যাট্রিবিউট ও স্টেট ম্যানেজমেন্ট
WebSocket হলো ব্রাউজার ও সার্ভারের মধ্যে ডুপ্লেক্স (দ্বিমুখী) যোগাযোগের জন্য একটি প্রোটোকল এবং API। HTML5-কম্প্লায়েন্ট ব্রাউজারগুলোতে JavaScript ইন্টারফেস হিসেবে উপলব্ধ। একটি একক TCP সংযোগের মাধ্যমে রিয়েল-টাইম ডেটা এক্সচেঞ্জ সম্ভব করে তোলে।
WebSocket অবজেক্টের প্রধান অ্যাট্রিবিউটসমূহ
| অ্যাট্রিবিউট | বর্ণনা |
|---|---|
Socket.readyState (Read-only) |
সংযোগের বর্তমান স্টেট নির্দেশ করে। নিম্নলিখিত মানগুলো সম্ভব:
|
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 ব্যবহার করা যেতে পারে।