Server-Sent Events (SSE) হলো একটি ওয়েব প্রযুক্তি যা ক্লায়েন্টকে (যেমন ব্রাউজার) সার্ভার থেকে একপথে রিয়েল-টাইম ডেটা পাঠানোর জন্য ব্যবহৃত হয়। এটি HTTP প্রোটোকলের উপর ভিত্তি করে কাজ করে এবং এটি পেজ রিফ্রেশ ছাড়া ক্লায়েন্টকে সার্ভার থেকে আপডেট পাঠানোর জন্য ডিজাইন করা হয়েছে। SSE কে সাধারণত রিয়েল-টাইম ডেটা স্ট্রিমিং এবং পুশ নোটিফিকেশন ব্যবস্থায় ব্যবহার করা হয়।
SSE সাধারণত one-way communication এর জন্য ব্যবহৃত হয়, যেখানে সার্ভার ক্লায়েন্টকে একটি ধারাবাহিকভাবে ডেটা পাঠায়। এটি WebSockets এর তুলনায় একটু সরল এবং একটি ক্লায়েন্টের জন্য অনেক কম রিসোর্স প্রয়োজন হয়।
SSE এর মাধ্যমে সার্ভার ক্লায়েন্টকে একপথে ডেটা পাঠায়। ক্লায়েন্ট একটি HTTP রিকোয়েস্ট পাঠায় এবং সার্ভার থেকে একপথে ডেটা পাঠানো শুরু হয়।
EventSource
API ব্যবহার করে সার্ভারের সাথে কানেক্ট করে।Content-Type: text/event-stream
হেডার ব্যবহার করে একটি স্ট্রিমিং রেসপন্স পাঠায়।এখানে একটি HTML ফাইল তৈরি করা হবে, যা SSE এর মাধ্যমে সার্ভার থেকে ডেটা রিসিভ করবে এবং পেজে দেখাবে।
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Server-Sent Events Example</title>
</head>
<body>
<h1>Server-Sent Events Example</h1>
<div id="events"></div>
<script>
// SSE কানেকশন তৈরি
const eventSource = new EventSource("events.php");
// সার্ভার থেকে ডেটা রিসিভ করা
eventSource.onmessage = function(event) {
// ডেটা পেলে এটি পেজে দেখান
const eventData = document.getElementById("events");
eventData.innerHTML += `<p>${event.data}</p>`;
};
// কানেকশন ইরর হ্যান্ডলিং
eventSource.onerror = function(event) {
console.error("Error with SSE connection:", event);
};
</script>
</body>
</html>
এখন সার্ভার সাইডে একটি PHP স্ক্রিপ্ট তৈরি করা হবে, যা SSE স্ট্রিমিংয়ের মাধ্যমে ক্লায়েন্টে ডেটা পাঠাবে।
events.php:
<?php
// HTTP হেডার সেট করা
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
// ইনফিনিটি লুপ দিয়ে ডেটা পাঠানো
while (true) {
// বর্তমান সময়ের ডেটা পাঠানো
echo "data: " . date('Y-m-d H:i:s') . "\n\n";
// 1 সেকেন্ড ওয়েট করা
flush();
sleep(1); // প্রতি সেকেন্ডে সময় আপডেট হবে
}
?>
EventSource
অবজেক্ট তৈরি করে এবং সার্ভারের URL (এখানে events.php
) পাঠানো হয়।Content-Type: text/event-stream
রেসপন্স হেডার সেট করে, যাতে ব্রাউজার জানে যে এটি একটি SSE রেসপন্স।Server-Sent Events (SSE) হল একটি কার্যকরী প্রযুক্তি যা সার্ভার থেকে ক্লায়েন্টে রিয়েল-টাইম ডেটা পাঠানোর জন্য ব্যবহৃত হয়। এটি খুবই সহজ এবং কম রিসোর্স খরচে একপথে ডেটা স্ট্রিমিং করতে সহায়তা করে। SSE ওয়েব অ্যাপ্লিকেশনগুলিতে রিয়েল-টাইম ফিড, পুশ নোটিফিকেশন এবং অন্যান্য রিয়েল-টাইম অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়।
Read more