
রিয়েল-টাইম ওয়েব বৈশিষ্ট্যগুলির হয়ওয়েবসকেটসঅথবাসার্ভার-প্রেরিত ইভেন্ট (SSE). উভয়ই সার্ভার থেকে ক্লায়েন্টে ডেটা পুশ করে, তবে তারা ভিন্নভাবে কাজ করে। 2026 সালে, SSE AI স্ট্রিমিংয়ের জন্য জনপ্রিয়তা অর্জন করেছে যখন WebSockets দ্বিমুখী যোগাযোগের জন্য অপরিহার্য। এই গাইড কোডের মাধ্যমে ব্যাখ্যা করে এবং আপনাকে বেছে নিতে সাহায্য করে।
📋 Table of Contents
- ওয়েবসকেটস: ফুল ডুপ্লেক্স
- সার্ভার-প্রেরিত ইভেন্ট (SSE): ওয়ান-ওয়ে পুশ
- SSE (2026 প্যাটার্ন) এর সাথে AI স্ট্রিমিং
- তুলনা
- কখন কোনটি ব্যবহার করবেন
- 2026 সালে, বেশিরভাগ রিয়েল-টাইম বৈশিষ্ট্যগুলির জন্য SSE হল সঠিক পছন্দ — সহজ, HTTP/2-এর উপর কাজ করে, CDN-বান্ধব, এবং AI স্ট্রিমিংয়ের জন্য উপযুক্ত। আপনার সত্যিকারের দ্বিমুখী যোগাযোগের প্রয়োজন হলেই WebSockets বেছে নিন। SSE দিয়ে শুরু করুন এবং WebSockets-এ আপগ্রেড করুন যদি আপনি এর সীমা অতিক্রম করেন।
ওয়েবসকেটস: ফুল ডুপ্লেক্স
WebSockets একটি স্থায়ী TCP সংযোগ তৈরি করে। ক্লায়েন্ট এবং সার্ভার উভয়ই যেকোন সময় বার্তা পাঠাতে পারে — সত্যিকারের ফুল-ডুপ্লেক্স। এর জন্য ব্যবহৃত: চ্যাট অ্যাপ, সহযোগী টুল, লাইভ গেমিং, ট্রেডিং প্ল্যাটফর্ম।
# FastAPI WebSocket server
from fastapi import FastAPI, WebSocket
app = FastAPI()
connected = []
@app.websocket('/ws')
async def websocket_endpoint(ws: WebSocket):
await ws.accept()
connected.append(ws)
try:
while True:
data = await ws.receive_text()
# Broadcast to all clients
for client in connected:
await client.send_text(f'Message: {data}')
except:
connected.remove(ws)
// Browser WebSocket client
const ws = new WebSocket('wss://example.com/ws');
ws.onopen = () => console.log('Connected');
ws.onmessage = (e) => console.log('Received:', e.data);
ws.onerror = (e) => console.error('Error:', e);
ws.onclose = () => console.log('Disconnected');
// Send message
ws.send('Hello server!');
সার্ভার-প্রেরিত ইভেন্ট (SSE): ওয়ান-ওয়ে পুশ
SSE একটি নিয়মিত HTTP সংযোগ ব্যবহার করে যেখানে সার্ভার ইভেন্টগুলি স্ট্রিম করে। ক্লায়েন্ট ডেটা ফেরত পাঠাতে পারে না (এর জন্য আলাদা HTTP অনুরোধ ব্যবহার করুন)। সংযোগ বিচ্ছিন্ন হলে অটো-পুনঃসংযোগ। HTTP/2 মাল্টিপ্লেক্সিং এর উপর কাজ করে। এর জন্য ব্যবহৃত: লাইভ ফিড, এআই প্রতিক্রিয়া স্ট্রিমিং, বিজ্ঞপ্তি, অগ্রগতি বার।
# FastAPI SSE server
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
import asyncio
app = FastAPI()
@app.get('/stream')
async def stream():
async def event_generator():
for i in range(10):
yield f'data: Message {i}\n\n'
await asyncio.sleep(1)
return StreamingResponse(
event_generator(),
media_type='text/event-stream'
)
// Browser SSE client
const evtSource = new EventSource('/stream');
evtSource.onmessage = (e) => {
console.log('Received:', e.data);
};
evtSource.onerror = (e) => {
console.error('Error:', e);
// EventSource auto-reconnects after error
};
// Close when done
evtSource.close();
SSE (2026 প্যাটার্ন) এর সাথে AI স্ট্রিমিং
LLM APIs (Claude, OpenAI) SSE এর মাধ্যমে স্ট্রিম প্রতিক্রিয়া। ব্রাউজারে Claude স্ট্রিমিং ফরোয়ার্ড করার প্যাটার্ন এখানে।
import anthropic
from fastapi.responses import StreamingResponse
client = anthropic.Anthropic()
@app.post('/ask')
async def ask(question: str):
async def generate():
with client.messages.stream(
model='claude-sonnet-4-5',
max_tokens=1024,
messages=[{'role': 'user', 'content': question}]
) as stream:
for text in stream.text_stream:
yield f'data: {text}\n\n'
yield 'data: [DONE]\n\n'
return StreamingResponse(generate(), media_type='text/event-stream')
তুলনা
- ওয়েবসকেট:দ্বিমুখী, স্থায়ী TCP, বাইনারি বা পাঠ্য, ম্যানুয়াল পুনরায় সংযোগ
- SSE:শুধুমাত্র সার্ভার থেকে ক্লায়েন্ট, HTTP, শুধুমাত্র পাঠ্য, স্বয়ংক্রিয়-পুনঃসংযোগ, সহজতর
- ওয়েবসকেট ওভারহেড:ভারী সেটআপ (আপগ্রেড হ্যান্ডশেক, রাষ্ট্র পরিচালনা)
- SSE ওভারহেড:ন্যূনতম — যেকোনো HTTP সার্ভারের সাথে কাজ করে, CDN-বান্ধব
কখন কোনটি ব্যবহার করবেন
- ওয়েবসকেট:চ্যাট, মাল্টিপ্লেয়ার গেম, সহযোগী সম্পাদনা (Google ডক্স-স্টাইল) ||||৷ SSE:
- এআই প্রতিক্রিয়া স্ট্রিমিং, লাইভ ফিড, বিজ্ঞপ্তি, অগ্রগতি আপডেটনয়তোঃ
- কম ফ্রিকোয়েন্সি আপডেটের জন্য প্রতি ৩০ সেকেন্ডে ভোট দেওয়া সহজ এবং প্রায়ই যথেষ্টউপসংহার
2026 সালে, বেশিরভাগ রিয়েল-টাইম বৈশিষ্ট্যগুলির জন্য SSE হল সঠিক পছন্দ — সহজ, HTTP/2-এর উপর কাজ করে, CDN-বান্ধব, এবং AI স্ট্রিমিংয়ের জন্য উপযুক্ত। আপনার সত্যিকারের দ্বিমুখী যোগাযোগের প্রয়োজন হলেই WebSockets বেছে নিন। SSE দিয়ে শুরু করুন এবং WebSockets-এ আপগ্রেড করুন যদি আপনি এর সীমা অতিক্রম করেন।
In 2026, SSE is the right choice for most real-time features — simpler, works over HTTP/2, CDN-friendly, and perfect for AI streaming. Choose WebSockets only when you need true bidirectional communication. Start with SSE and upgrade to WebSockets if you hit its limits.
🔗 Share this article
✍️ Leave a Comment