Web Sockets প্রোটোকলটি ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম ডেটা আদান-প্রদান করতে সক্ষম। Web Sockets এর মাধ্যমে শুধুমাত্র টেক্সট (যেমন JSON, XML) বা বাইনারি (যেমন ইমেজ, অডিও ফাইল) ডেটা পাঠানো সম্ভব। এটি ডেটা ট্রান্সফারের জন্য দুটি প্রধান ফরম্যাট সাপোর্ট করে: টেক্সট ফ্রেম এবং বাইনারি ফ্রেম। এই দুই ধরনের ডেটা পাঠানোর পদ্ধতিতে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে, যা সঠিকভাবে ডেটা প্রক্রিয়াকরণের জন্য জানা প্রয়োজন।
টেক্সট ডেটা পাঠানো (Text Frames)
Web Sockets এর মাধ্যমে টেক্সট ডেটা পাঠানোর সময়, ডেটাটি সাধারণত UTF-8 এনকোডেড স্ট্রিং হিসেবে পাঠানো হয়। টেক্সট ডেটা সাধারণত JSON, XML, অথবা সাধারণ স্ট্রিং হিসেবে ব্যবহৃত হয়।
- ফরম্যাট:
- টেক্সট ফ্রেমে ডেটা পাঠানো হয় যা UTF-8 এনকোডেড স্ট্রিং হিসেবে থাকে।
- এটি সাধারনত ক্লায়েন্ট থেকে সার্ভারে বা সার্ভার থেকে ক্লায়েন্টে তথ্য আদান-প্রদান করতে ব্যবহৃত হয়।
- ব্যবহার:
- JSON: টেক্সট ফ্রেমে JSON ডেটা পাঠানো অত্যন্ত জনপ্রিয়, কারণ JSON একটি স্ট্রাকচারড ডেটা ফরম্যাট এবং ওয়েব অ্যাপ্লিকেশনগুলিতে বেশ প্রচলিত।
- XML: কিছু ক্ষেত্রে XML ফরম্যাটেও টেক্সট ডেটা পাঠানো হতে পারে।
- স্ট্রিং: সাধারণ পাঠ্য তথ্য যেমন বার্তা বা নির্দেশনা সরবরাহ করার জন্য।
- কোডিং:
উদাহরণ:
const socket = new WebSocket("wss://example.com/socket"); socket.onopen = () => { socket.send("Hello, Server!"); // টেক্সট ডেটা পাঠানো };
বাইনারি ডেটা পাঠানো (Binary Frames)
Web Sockets প্রোটোকল বাইনারি ডেটাও পাঠাতে সক্ষম। বাইনারি ডেটা ফ্রেম দুটি ফরম্যাটে পাঠানো যেতে পারে: ArrayBuffer এবং Blob। এই বাইনারি ফরম্যাট ডেটা যেমন ইমেজ, অডিও, ভিডিও ফাইল, বা অন্যান্য বাইনারি ফাইল আদান-প্রদানে ব্যবহার করা হয়। বাইনারি ডেটা প্রক্রিয়াকরণের জন্য বিভিন্ন উপায় রয়েছে, যার মধ্যে দুইটি জনপ্রিয় ফরম্যাট হচ্ছে ArrayBuffer এবং Blob।
- ArrayBuffer:
- ArrayBuffer হল একটি বাইনারি ডেটার স্থায়ী জায়গা, যা একসাথে একাধিক ডেটা ভ্যালু ধারণ করতে সক্ষম।
- এটি Web Sockets এর মাধ্যমে বাইনারি ডেটা পাঠাতে ব্যবহৃত হয়, বিশেষত যখন ডেটা সঠিকভাবে প্রক্রিয়াকরণ করতে হয়।
- Blob:
- Blob ফরম্যাটে ডেটা পাঠানো যায়, বিশেষত যখন বড় আকারের ফাইল (যেমন ছবি বা ভিডিও) পাঠাতে হয়।
- Blob এর মাধ্যমে বড় আকারের ডেটা স্টোর এবং ট্রান্সফার করা সহজ হয়।
- ব্যবহার:
- ইমেজ, অডিও বা ভিডিও ফাইল প্রেরণ করা যায়।
- গেমিং বা ভিডিও স্ট্রিমিং অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়।
- কোডিং:
উদাহরণ:
const socket = new WebSocket("wss://example.com/socket"); socket.onopen = () => { const buffer = new ArrayBuffer(8); // বাইনারি ডেটা তৈরি socket.send(buffer); // বাইনারি ডেটা পাঠানো };
টেক্সট এবং বাইনারি ডেটার মধ্যে পার্থক্য
- ফরম্যাট:
- টেক্সট ডেটা UTF-8 এনকোডেড স্ট্রিং হিসেবে পাঠানো হয়, যেখানে বাইনারি ডেটা
ArrayBufferবাBlobফরম্যাটে থাকে।
- টেক্সট ডেটা UTF-8 এনকোডেড স্ট্রিং হিসেবে পাঠানো হয়, যেখানে বাইনারি ডেটা
- ডেটা আকার:
- টেক্সট ডেটা সাধারণত ছোট আকারের এবং সহজভাবে পাঠানো যায়, তবে বাইনারি ডেটা বেশি জায়গা নেয় এবং বড় আকারের ফাইল যেমন ছবি বা ভিডিও ট্রান্সফার করতে হয়।
- ব্যবহার:
- টেক্সট ডেটা সাধারণত স্ট্রাকচারড ডেটা (যেমন JSON) বা বার্তা হিসেবে ব্যবহৃত হয়, যেখানে বাইনারি ডেটা বৃহৎ আকারের ডেটা যেমন ইমেজ, অডিও বা ভিডিও ট্রান্সফারের জন্য ব্যবহৃত হয়।
সারাংশ
Web Sockets প্রোটোকলটি ক্লায়েন্ট এবং সার্ভারের মধ্যে টেক্সট এবং বাইনারি ডেটা আদান-প্রদান করতে সক্ষম। টেক্সট ডেটা সাধারণত UTF-8 এনকোডেড স্ট্রিং হিসেবে পাঠানো হয়, যেমন JSON বা সাধারণ স্ট্রিং, যা ওয়েব অ্যাপ্লিকেশনগুলিতে অত্যন্ত জনপ্রিয়। বাইনারি ডেটা পাঠানোর জন্য ArrayBuffer বা Blob ফরম্যাট ব্যবহৃত হয়, যা বড় আকারের ডেটা যেমন ছবি, ভিডিও বা অন্যান্য মিডিয়া ফাইল ট্রান্সফারের জন্য উপযোগী। Web Sockets এর মাধ্যমে এই দুই ধরনের ডেটা আদান-প্রদান রিয়েল-টাইম অ্যাপ্লিকেশনের জন্য অত্যন্ত কার্যকরী।
Read more