WebSocket: یہ کیا ہے، مکمل دو طرفہ مواصلاتی پروٹوکول اور یہ کیسے کام کرتا ہے

مصنف: IT Sectr اشاعت: 2026-03-06 مطالعے کا وقت: 8 منٹ

WebSocket ایک مکمل دو طرفہ مواصلاتی پروٹوکول ہے جو کلائنٹ اور سرور کے درمیان ریئل ٹائم ڈیٹا کے تبادلے کے لیے ایک مستقل کنکشن قائم کرتا ہے۔ روایتی HTTP درخواستوں کے برعکس، یہ پروٹوکول ایک واحد کنکشن قائم کرتا ہے اور بار بار مصافحہ کے بغیر دو طرفہ ترسیل کے لیے اسے استعمال کرتا ہے۔ Mozilla Developer Network (2025) کے مطابق، WebSocket ریئل ٹائم ایپلیکیشنز میں HTTP polling کے مقابلے میں تاخیر کو 50% تک کم کرتا ہے۔

اہم نکات

  • WebSocket ریئل ٹائم ڈیٹا کے تبادلے کے لیے TCP پر ایک مکمل دو طرفہ پروٹوکول ہے
  • مستقل کنکشن ہر درخواست پر بار بار HTTP مصافحہ کے اوور ہیڈ کو ختم کرتا ہے
  • تاخیر ہیڈرز کی عدم موجودگی کی وجہ سے HTTP Long Polling کے مقابلے میں 30-50% کم ہو جاتی ہے
  • پروٹوکول تمام جدید براؤزرز اور موبائل پلیٹ فارمز کے ذریعے مقامی API کے ذریعے تعاون یافتہ ہے
  • استعمالات میں چیٹس، آن لائن گیمز، ٹریڈنگ ٹرمینلز اور IoT ڈیوائسز شامل ہیں

WebSocket کیا ہے؟

WebSocket ایک مواصلاتی پروٹوکول ہے جو TCP پر کام کرتا ہے اور کلائنٹ اور سرور کے درمیان ایک مکمل دو طرفہ چینل فراہم کرتا ہے۔ اسے 2011 میں IETF نے RFC 6455 کے طور پر معیاری بنایا تھا اور یہ تمام جدید براؤزرز، موبائل پلیٹ فارمز اور سرور فریم ورکس کے ذریعے تعاون یافتہ ہے۔

HTTP کے برعکس، جہاں کلائنٹ درخواست شروع کرتا ہے اور جواب وصول کرتا ہے، WebSocket کنکشن قائم ہونے کے بعد دونوں فریقوں کو کسی بھی وقت پیغامات بھیجنے کی اجازت دیتا ہے۔ یہ اسے فوری ترسیل کی ضرورت والے منظرناموں کے لیے مثالی بناتا ہے: چیٹس، اطلاعیں، مشترکہ دستاویز کی تدوین۔

WebSocket پروٹوکول ابتدائی مصافحہ کے لیے HTTP پورٹ 80 یا HTTPS پورٹ 443 استعمال کرتا ہے، جس کے بعد یہ کم سے کم ہیڈر کے ساتھ اپنے پروٹوکول پر سوئچ کرتا ہے — HTTP میں 800+ بائٹس کے مقابلے میں صرف 2 بائٹس۔ یہ خصوصیت بڑی تعداد میں پیغامات کے ساتھ نمایاں کارکردگی کا فائدہ فراہم کرتی ہے۔

پروٹوکول کی اہم خصوصیات

WebSocket کنکشن HTTP اپ گریڈ کی درخواست (Upgrade) سے شروع ہوتا ہے، جس کے بعد پروٹوکول بائنری فریم فارمیٹ میں تبدیل ہو جاتا ہے۔ فریم کا سائز 2 بائٹس سے 2^63 بائٹس تک ہوتا ہے، جو مختصر ٹیکسٹ پیغامات اور بڑے بائنری ڈیٹا دونوں کی ترسیل کی اجازت دیتا ہے۔ پروٹوکول پیغام کی تقسیم، کلائنٹ سے سرور تک ڈیٹا ماسکنگ، اور کنکشن کو فعال رکھنے کے لیے ping/pong کو سپورٹ کرتا ہے۔

WebSocket کیسے کام کرتا ہے؟

WebSocket کنکشن قائم کرنے کا عمل دو مراحل پر مشتمل ہے: مصافحہ اور ڈیٹا کی منتقلی۔ مصافحہ کے مرحلے کے دوران، کلائنٹ Upgrade: websocket ہیڈر کے ساتھ HTTP درخواست بھیجتا ہے، اور سرور 101 Switching Protocols کی حیثیت سے پروٹوکول سوئچ کی تصدیق کرتا ہے۔ اس کے بعد، کنکشن مکمل دو طرفہ ترسیل کے موڈ میں داخل ہو جاتا ہے۔

WebSocket میں ہر پیغام فریموں میں تقسیم ہوتا ہے۔ ایک فریم میں opcode (ٹیکسٹ، بائنری ڈیٹا، بند، ping/pong)، پے لوڈ کی لمبائی اور کلائنٹ سے ڈیٹا کے لیے ماسکنگ کلید ہوتی ہے۔ فریموں کو تقسیم کیا جا سکتا ہے — کنٹرول فریم (ping/pong) پیغام کے ٹکڑوں کے درمیان بھیجے جا سکتے ہیں، جو طویل منتقلی کے دوران کنکشن ٹائم آؤٹ کو روکتے ہیں۔

js
const ws = new WebSocket('wss://example.com/chat')

ws.addEventListener('open', () => {
    console.log('کنکشن قائم ہو گیا')
    ws.send('ہیلو، سرور!')
})

ws.addEventListener('message', (event) => {
    console.log('موصول ہوا:', event.data)
})

ws.addEventListener('close', () => {
    console.log('کنکشن بند ہو گیا')
})

اوپر کی مثال میں، کلائنٹ محفوظ URL wss:// کی وضاحت کرتے ہوئے ایک WebSocket آبجیکٹ بناتا ہے۔ کنکشن کھلنے کے بعد، ایک خوش آمدید پیغام بھیجا جاتا ہے، اور پیغام ہینڈلر سرور سے جوابات وصول کرتا ہے۔ بند ہونے پر، کلوز ہینڈلر فعال ہوتا ہے — نیٹ ورک میں رکاوٹوں کی صورت میں دوبارہ کنکشن کے لیے یہ اہم ہے۔

WebSocket بمقابلہ HTTP: موازنہ

WebSocket اور HTTP کے درمیان بنیادی فرق تعامل کے ماڈل میں ہے۔ HTTP درخواست-جواب کی اسکیم پر کام کرتا ہے: کلائنٹ درخواست شروع کرتا ہے، سرور جواب دیتا ہے، اور کنکشن بند ہو جاتا ہے۔ دوسری طرف، WebSocket ایک مستقل چینل قائم کرتا ہے جس کے ذریعے دونوں فریق کسی بھی وقت ترسیل شروع کر سکتے ہیں۔

ان ایپلیکیشنز کے لیے جنہیں کم تاخیر اور ڈیٹا کا مسلسل سلسلہ درکار ہوتا ہے، WebSocket نمایاں طور پر زیادہ موثر ہے۔ HTTP Long Polling — ایک متبادل جہاں سرور ڈیٹا دستیاب ہونے تک درخواست کو کھلا رکھتا ہے — سرور پر ضرورت سے زیادہ بوجھ ڈالتا ہے اور متعدد بیک وقت کنکشنز کی وجہ سے میموری کی کھپت بڑھاتا ہے۔

پیرامیٹرWebSocketHTTP
ماڈلمکمل دو طرفہدرخواست-جواب
ہیڈر2-14 بائٹس400-800 بائٹس
مستقل کنکشنہاں، واحدنہیں، ہر درخواست پر نیا
تاخیرکم (1-5 ms)زیادہ (50-200 ms)
پروٹوکولws:// یا wss://http:// یا https://

High Performance Browser Networking (Grigorik, O'Reilly) کے مطابق، WebSocket ریئل ٹائم منظرناموں میں HTTP Long Polling کے مقابلے میں نیٹ ورک کی تاخیر کو 40-60% کم کرتا ہے، جبکہ بار بار مصافحہ کے خاتمے کی وجہ سے سرور کا بوجھ 3-5 گنا کم ہو جاتا ہے۔

WebSocket کہاں استعمال ہوتا ہے؟

اپنی کم تاخیر اور دو طرفہ مواصلات کی بدولت، WebSocket ایپلیکیشنز کی ایک وسیع رینج میں استعمال ہوتا ہے۔ اہم منظرناموں میں فوری پیغام رسانی، گیمز میں حالت کی مطابقت پذیری اور مالیاتی نظاموں میں مارکیٹ ڈیٹا کی ترسیل شامل ہیں۔

چیٹس اور میسنجر

WebSocket چیٹ ایپلیکیشنز کے لیے حقیقی معیار بن گیا ہے۔ Slack، Telegram Web اور WhatsApp Web جیسے پلیٹ فارمز فوری پیغام کی ترسیل کے لیے WebSocket استعمال کرتے ہیں۔ پروٹوکول ایک ہی چینل کے ذریعے ٹیکسٹ پیغامات اور فائلیں دونوں بھیجنے کی اجازت دیتا ہے، جبکہ ping/pong میکانزم غیرفعالیت کی مدت کے دوران بھی کنکشن کو فعال رکھتا ہے۔

آن لائن گیمز

ملٹی پلیئر براؤزر اور موبائل گیمز کو کھلاڑیوں کی حالت کو مطابقت پذیر بنانے کے لیے کم سے کم تاخیر درکار ہوتی ہے۔ WebSocket HTTP درخواستوں کی تاخیر کے بغیر نقاط، اعمال اور واقعات کو ریئل ٹائم میں منتقل کرتا ہے۔ Socket.IO اور Colyseus جیسے فریم ورک نیچی سطح کے پروٹوکول آپریشنز کو تجریدی بناتے ہیں، خودکار دوبارہ کنکشن اور کمرے شامل کرتے ہیں۔

مالیاتی ایپلیکیشنز

ٹریڈنگ ٹرمینلز اور تجارتی پلیٹ فارمز ریئل ٹائم کوٹس وصول کرنے کے لیے WebSocket استعمال کرتے ہیں۔ چند ملی سیکنڈ کی تاخیر لاکھوں ڈالر کا نقصان کر سکتی ہے، اس لیے مالیاتی API — جیسے Binance WebSocket Streams، Coinbase Pro — مارکیٹ ڈیٹا کے لیے WebSocket انٹرفیس فراہم کرتے ہیں۔

موبائل ایپلیکیشنز اور IoT

موبائل ڈیولپمنٹ میں، WebSocket مقامی API کے ذریعے استعمال ہوتا ہے: iOS پر URLSessionWebSocketTask اور Android پر OkHttp WebSocket۔ Flutter کے لیے web_socket_channel لائبریری ہے، اور React Native کے لیے — react-native-websocket۔ IoT ڈیوائسز ٹیلی میٹری منتقل کرنے اور کنٹرول کمانڈز وصول کرنے کے لیے WebSocket استعمال کرتی ہیں، کیونکہ پروٹوکول مستقل HTTP polling کے مقابلے میں کم توانائی خرچ کرتا ہے۔

WebSocket کوڈ مثالیں

آئیے Node.js کا استعمال کرتے ہوئے ws لائبریری (JavaScript کے لیے WebSocket کا سب سے مقبول نفاذ) کے ساتھ ایک سرور سائڈ مثال دیکھتے ہیں۔ سرور کنکشن قبول کرتا ہے، پیغامات پر کارروائی کرتا ہے اور انہیں تمام منسلک کلائنٹس کو نشر کرتا ہے۔

js
const WebSocket = require('ws')
const wss = new WebSocket.Server({ port: 8080 })

wss.on('connection', (ws) => {
    console.log('نیا کلائنٹ منسلک ہو گیا')

    ws.on('message', (data) => {
        console.log('موصول ہوا:', data.toString())
        ws.send('سرور نے آپ کا پیغام وصول کر لیا')
    })

    ws.on('close', () => {
        console.log('کلائنٹ منقطع ہو گیا')
    })
})

console.log('WebSocket سرور پورٹ 8080 پر شروع ہو گیا')

سرور پورٹ 8080 پر WebSocket.Server کی ایک مثال بناتا ہے اور کنکشن کا انتظار کرتا ہے۔ ہر نئے کلائنٹ کو ایک علیحدہ ws آبجیکٹ تفویض کیا جاتا ہے جس کے ذریعے سرور انفرادی پیغامات بھیج سکتا ہے۔ تمام کلائنٹس کو پیغامات کی نشریات کنکشنز کی صف کو دہرا کر لاگو کی جاتی ہیں۔ کلائنٹس کی بڑی تعداد (1000 سے زیادہ) کے ساتھ، کلسٹرنگ سپورٹ والی لائبریریاں استعمال کرنے کی سفارش کی جاتی ہے، جیسے Socket.IO، جو Redis پر مبنی اسکیلنگ اور خودکار دوبارہ کنکشن شامل کرتی ہیں۔

تمام کلائنٹس کو پیغام بھیجنا

js
wss.clients.forEach((client) => {
    if (client.readyState === WebSocket.OPEN) {
        client.send('تمام شرکاء کے لیے پیغام')
    }
})

بھیجنے سے پہلے readyState چیک کرنا لازمی ہے: اگر کلائنٹ پہلے ہی منقطع ہو چکا ہے تو send کو کال کرنے سے خرابی پیدا ہوگی۔ WebSocket.OPEN پرچم اس بات کی ضمانت دیتا ہے کہ کنکشن فعال ہے اور پیغام پہنچایا جائے گا۔

iOS موبائل ایپلیکیشنز کے لیے، WebSocket URLSessionWebSocketTask کے ذریعے لاگو کیا جاتا ہے، جو iOS 13 سے دستیاب ہے۔ سیشن wss:// پروٹوکول URL کے ساتھ ایک ٹاسک بناتا ہے، جس کے بعد send اور receive طریقے کال کیے جاتے ہیں۔ پیغام وصول کرنے کو مسلسل receive ریکرژن کے ذریعے منظم کیا جا سکتا ہے، جو پچھلے پیغام پر کارروائی کرنے کے بعد اگلے پیغام کا انتظار کرتا ہے، بغیر دوبارہ کنکشن کے مسلسل ڈیٹا وصولی کو یقینی بناتا ہے۔ Android کے لیے، OkHttp WebSocket استعمال کیا جاتا ہے، جو onOpen، onMessage، onClosing اور onClosed کال بیکس کے ساتھ ساتھ کنکشن ٹوٹنے پر خودکار دوبارہ کنکشن فراہم کرتا ہے۔

موبائل ایپلیکیشنز میں WebSocket کے ساتھ کام کرتے وقت، لائف سائیکل مینجمنٹ پر غور کرنا ضروری ہے: جب ایپ بیک گراؤنڈ میں جاتی ہے تو سسٹم کنکشن ختم کر سکتا ہے۔ iOS پر، sceneDidBecomeActive ڈیلیگیٹ کے ذریعے فارگراؤنڈ میں واپسی پر کنکشن دوبارہ قائم کیا جانا چاہیے۔ Android پر، کنکشن برقرار رکھنے کے لیے Lifecycle-aware اجزاء یا Service استعمال کرنی چاہیے۔ مزید برآں، دوبارہ کنکشن کے لیے ایکسپونینشل بیک آف (کوششوں کے درمیان وقفہ 1 سے 30 سیکنڈ تک بڑھانا) لاگو کرنے کی سفارش کی جاتی ہے تاکہ عارضی نیٹ ورک مسائل کے دوران سرور پر ضرورت سے زیادہ بوجھ پیدا نہ ہو۔

اکثر پوچھے گئے سوالات

WebSocket HTTP سے کیسے مختلف ہے؟

WebSocket ایک مستقل مکمل دو طرفہ کنکشن قائم کرتا ہے جہاں دونوں فریق کسی بھی وقت ڈیٹا بھیج سکتے ہیں۔ HTTP درخواست-جواب کی اسکیم پر کام کرتا ہے جہاں ہر تبادلے کے لیے نیا کنکشن اور مکمل ہیڈرز درکار ہوتے ہیں۔ WebSocket ایک واحد TCP چینل اور صرف 2-14 بائٹس کے ہیڈرز استعمال کرتا ہے، جو تاخیر کو ڈرامائی طور پر کم کرتا ہے۔

WebSocket کون سی پورٹ استعمال کرتا ہے؟

WebSocket غیر محفوظ کنکشنز (ws://) کے لیے پورٹ 80 اور محفوظ کنکشنز (wss://) کے لیے پورٹ 443 استعمال کرتا ہے۔ یہ اضافی ترتیب کے بغیر زیادہ تر پراکسی سرورز اور کارپوریٹ فائر والز سے گزرنے کی اجازت دیتا ہے۔ TLS انکرپشن کی وجہ سے پروڈکشن ماحول کے لیے پورٹ 443 تجویز کیا جاتا ہے۔

کیا WebSocket موبائل ایپلیکیشنز میں تعاون یافتہ ہے؟

ہاں، WebSocket تمام موبائل پلیٹ فارمز پر تعاون یافتہ ہے۔ iOS پر، مقامی URLSessionWebSocketTask کلاس iOS 13 سے دستیاب ہے۔ Android پر — OkHttp WebSocket کلاس اور معیاری java.net.WebSocket۔ React Native کے لیے react-native-websocket لائبریری موجود ہے۔

WebSocket Secure (wss://) کیا ہے؟

WebSocket Secure پروٹوکول کا محفوظ ورژن ہے جو TLS پر کام کرتا ہے۔ تمام ڈیٹا بالکل HTTPS کی طرح انکرپٹ ہوتا ہے۔ پروڈکشن ایپلیکیشنز کے لیے WSS لازمی ہے، خاص طور پر WebSocket کے ذریعے توثیقی ٹوکنز یا ذاتی ڈیٹا کی ترسیل کے وقت۔

WebSocket کے کون سے متبادل موجود ہیں؟

اہم متبادل یہ ہیں: HTTP Long Polling (سرور درخواست کو کھلا رکھتا ہے)، Server-Sent Events (سرور سے یک طرفہ سلسلہ)، اور WebRTC Data Channel (ہم پہنچ سے ہم پہنچ مواصلات)۔ Server-Sent Events لاگو کرنے میں آسان ہیں لیکن کلائنٹ سے سرور کو بھیجنے کی حمایت نہیں کرتے۔

خلاصہ

  • WebSocket TCP پر کام کرنے والا ایک مکمل دو طرفہ ریئل ٹائم پروٹوکول ہے جو RFC 6455 کے طور پر معیاری ہے
  • مستقل کنکشن HTTP مصافحہ کے اوور ہیڈ کو ختم کرتا ہے، تاخیر کو 1-5 ms تک کم کرتا ہے
  • فریم ہیڈر HTTP میں 400-800 بائٹس کے مقابلے میں صرف 2-14 بائٹس ہے
  • استعمال ہوتا ہے چیٹس، آن لائن گیمز، ٹریڈنگ ٹرمینلز، IoT اور مشترکہ تدوین میں
  • WSS TLS انکرپشن فراہم کرتا ہے اور پروڈکشن ماحول کے لیے تجویز کیا جاتا ہے
  • پروٹوکول تمام براؤزرز، موبائل پلیٹ فارمز اور سرور زبانوں سے تعاون یافتہ ہے
  • استعمال کریں ریئل ٹائم فیچرز کے لیے WebSocket اور معیاری REST درخواستوں کے لیے HTTP

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں