ব্রাউজারের WebSocket API-তে send() আছে। এটি JavaScript-কে প্রোটোকল Ping ফ্রেম পাঠানোর জন্য কোনো সাধারণ ping() পদ্ধতি প্রকাশ করে না।

আপনার অ্যাপ্লিকেশন {"type":"heartbeat"}-এর মতো একটি টেক্সট বার্তা পাঠালে সেটি অ্যাপ্লিকেশন ডেটা। সার্ভারকে বার্তাটি বুঝতে হবে এবং একটি উত্তর নির্ধারণ করতে হবে। যে সার্ভার ওই চুক্তি বাস্তবায়ন করে না, তাকে কেবল টেক্সটে ping শব্দটি থাকার কারণে প্রোটোকল Pong দিয়ে উত্তর দিতে বাধ্য করা যায় না।

স্বীকৃতির অর্থ কী, এটি কীভাবে অপেক্ষমাণ হার্টবিট চিহ্নিত করে এবং কখন পুরোনো স্বীকৃতি অতিরিক্ত দেরি হয়ে যায় তা নির্ধারণ করুন। এটি ব্যবসায়িক কার্যক্রমের স্বীকৃতি থেকে আলাদা রাখুন।

JavaScript টাইমারেরও সময়সূচি সংক্রান্ত সীমাবদ্ধতা আছে। পটভূমির ট্যাব ও ব্যস্ত মূল থ্রেড কলব্যাক বিলম্বিত করতে পারে। একটি মিস হওয়া সঠিক টাইমার সীমাকে প্রক্সি ফরোয়ার্ডিং বন্ধ করেছে—এমন চূড়ান্ত প্রমাণ হিসেবে ব্যাখ্যা করবেন না।

ব্রাউজার প্রোটোকল নিয়ন্ত্রণ ফ্রেম অভ্যন্তরীণভাবে সামলাতে পারে, তবে তা অ্যাপ্লিকেশন কোডকে প্রতিটি Ping বা Pong-এর বহনযোগ্য দৃশ্য দেয় না। পৃষ্ঠার নিজের সচলতার সিদ্ধান্ত দরকার হলে একটি স্পষ্ট অ্যাপ্লিকেশন চুক্তি ও পুনরুদ্ধার নীতি ব্যবহার করুন।

যে সকেটের readyState OPEN, তাকে স্থানীয়ভাবে খোলা ধরা হয়; দূরের অ্যাপ্লিকেশন আপনার শেষ বার্তা প্রক্রিয়া করেছে—এটি তার স্বতন্ত্র পরিমাপ নয়। আপনি যে প্রশ্নের সত্যিই উত্তর চান তার সঙ্গে মেলে এমন প্রমাণ ব্যবহার করুন।

সম্পর্কিত নিবন্ধ