براؤزر میں WebSocket ہارٹ بیٹ کے لیے ایپلیکیشن پروٹوکول درکار ہے
ایسا طے شدہ ایپلیکیشن ہارٹ بیٹ ڈیزائن کریں جب براؤزر کا JavaScript WebSocket Ping فریم براہِ راست نہ بھیج سکے۔
براؤزر کے WebSocket API میں send() موجود ہے۔ یہ JavaScript کے لیے پروٹوکول کے Ping فریم بھیجنے کا کوئی عام ping() طریقہ فراہم نہیں کرتا۔
اگر آپ کی ایپلیکیشن {"type":"heartbeat"} جیسا متنی پیغام بھیجتی ہے تو یہ ایپلیکیشن ڈیٹا ہے۔ سرور کو پیغام سمجھنا اور جواب متعین کرنا ہوگا۔ جو سرور یہ معاہدہ نافذ نہیں کرتا، وہ محض اس لیے پروٹوکول Pong سے جواب دینے کا پابند نہیں کہ متن میں ping کا لفظ موجود ہے۔
وضاحت کریں کہ تصدیق کا کیا مطلب ہے، وہ زیرِ التوا ہارٹ بیٹ کی شناخت کیسے کرتی ہے، اور پرانی تصدیق کب بہت دیر سے آتی ہے۔ اسے کاروباری کارروائی کی تصدیق سے الگ رکھیں۔
JavaScript ٹائمر کی بھی شیڈولنگ حدود ہوتی ہیں۔ پس منظر کے ٹیب اور مصروف مرکزی تھریڈ کال بیکس میں تاخیر کر سکتے ہیں۔ چھوٹی ہوئی درست ٹائمر حد کو اس بات کا حتمی ثبوت نہ سمجھیں کہ پراکسی نے آگے بھیجنا بند کر دیا۔
براؤزر پروٹوکول کے کنٹرول فریم اندرونی طور پر سنبھال سکتا ہے، مگر اس سے ایپلیکیشن کوڈ کو ہر Ping یا Pong کا قابلِ منتقلی منظر نہیں ملتا۔ اگر صفحے کو اپنا حیاتاتی فیصلہ درکار ہو تو واضح ایپلیکیشن معاہدہ اور بازیابی کی پالیسی استعمال کریں۔
جس ساکٹ کا readyState OPEN ہو وہ مقامی طور پر کھلا سمجھا جاتا ہے؛ یہ اس بات کی آزاد پیمائش نہیں کہ دور دراز کی ایپلیکیشن نے آپ کا آخری پیغام پراسیس کیا۔ وہ شواہد استعمال کریں جو اس سوال سے مطابقت رکھتے ہوں جس کا آپ کو واقعی جواب دینا ہے۔