پروکسی کے ذریعے WebSocket Ping اور TCP Keepalive
WebSocket ہم منصب کے لیے زندگی کی جانچ منتخب کریں، بجائے اس کے کہ زندہ TCP ساکٹ کو اس بات کا ثبوت سمجھیں کہ ایپلیکیشن کا راستہ جواب دے رہا ہے۔
زندہ TCP ساکٹ، جواب دیتا WebSocket ہم منصب اور مفید ایپلیکیشن پیش رفت الگ الگ مشاہدے ہیں:
| ثبوت | یہ کیا ثابت کرتا ہے |
|---|---|
| TCP سطح پر زندگی | جانچا گیا نقل و حمل راستہ اسی سطح پر جواب دیتا ہے |
| مطابق WebSocket Pong | ہم منصب نے اس کنٹرول فریم کا جواب دیا |
| ایپلیکیشن کی تصدیق | ایپلیکیشن نے اپنے پروٹوکول کے تحت کسی عمل کی تصدیق کی |
فارورڈ پروکسی عام طور پر کلائنٹ اور منزل کے لیے الگ کنکشن رکھتی ہے۔ کلائنٹ کا TCP ہم منصب پروکسی ہوتا ہے، جبکہ قائم شدہ ٹنل کے اندر Ping WebSocket اینڈ پوائنٹ تک جاتا ہے۔
مطابق Pong
پروٹوکول کا تقاضا ہے کہ جواب دیتا Pong، Ping کا ایپلیکیشن ڈیٹا ساتھ لے کر چلے۔ باقی جانچ کی شناخت کے لیے یہی مطابقت استعمال کریں۔ غیر طلب کردہ Pong کی اجازت ہے مگر یہ تصدیق نہیں مانگتا؛ ہر ڈیٹا پیغام کے بعد اسے بھیجنا مختلف ثبوت فراہم کرتا ہے۔
لائبریری کے فراہم کردہ heartbeat میکانزم کو ترجیح دیں۔ براؤزر JavaScript کو اس کے بجائےایپلیکیشن heartbeat معاہدہدرکار ہوتا ہے۔ وقفے اور ناکامی کی حدیں کام کے بوجھ اور نیٹ ورک پالیسی کے مطابق چنیں۔ شیڈولنگ میں وقفے یا حد سے زیادہ بوجھ والا ایونٹ لوپ سخت حد سے گزر سکتا ہے، بغیر یہ ثابت کیے کہ نیٹ ورک ناکام ہوا ہے۔
وصول کنندہ کو چلتا رکھیں
کنٹرول فریم وصول کرنے اور ان پر کارروائی کے لیے کلائنٹ کو مسلسل I/O درکار ہے۔ اس میکانزم کو روکنا مقامی وسائل کی کمی کو بندش جیسا دکھا سکتا ہے۔
Ping ٹنل میں ٹریفک پیدا کرتا ہے، لیکن ہر درمیانی عنصر خود طے کرتا ہے کہ اس کی idle پالیسی کیا پوری کرتا ہے۔ کوئی heartbeat کنکشن کی مطلق عمر کی حد سے تحفظ کی ضمانت نہیں دیتا۔
ہم منصب Ping کا جواب دے سکتا ہے جبکہ اس کی ایپلیکیشن اپ ڈیٹس بنانا روک دے، اور خاموش سبسکرپشن صحت مند ہو سکتی ہے۔ جب دونوں اہم ہوں تو آخری درست Pong اور بامعنی ایپلیکیشن واقعہ کو الگ الگ ٹریک کریں۔ ناکامی پر راستہ، گزرا وقت اور باقی جانچ محفوظ رکھیں، پھر معاون لائف سائیکل کے ذریعے بند یا بازیافت کریں۔